v1.0
Frigid v1.0 (2024-12-05)
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 to
types.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 calling
super().__init__(). -
Add immutable dictionaries, which have additional methods, such as
copyand
with_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.