Release Notes¶
Frigid 1.0 (2024-12-04)¶
Features¶
Add
@immutabledecorator for making instances of existing classes immutable after initialization. Compatible with most classes except those defining their own__setattr__or__delattr__methods.Add
Moduleclass andreclassify_modulesfunction for creating and converting to immutable modules. This prevents runtime modification of module attributes, helping ensure interface stability.Add
Namespaceclass providing a completely immutable alternative totypes.SimpleNamespace. All attributes must be set during initialization and cannot be modified afterward.Add
Objectbase class for creating objects with immutable attributes. Derived classes must set attributes in__init__before callingsuper().__init__().Add immutable dictionaries, which have additional methods, such as
copyandwith_data, additional operations, such as union (|) and intersection (&):Dictionaryfor simple immutable mappingsValidatorDictionarywhich uses a provided validator function
Add metaclasses for creating classes with immutable class attributes:
Classfor standard classesABCFactoryfor abstract base classesProtocolClassfor protocol classes
Add qualified aliases in
qaliasesmodule with “Immutable” prefix for all core classes, helping avoid namespace conflicts.
Supported Platforms¶
Add support for CPython 3.10 to 3.13.
Add support for PyPy 3.10.