Release Notes¶
Frigid 1.0 (2024-12-04)¶
Features¶
Add
@immutable
decorator for making instances of existing classes immutable after initialization. Compatible with most classes except those defining their own__setattr__
or__delattr__
methods.Add
Module
class andreclassify_modules
function for creating and converting to immutable modules. This prevents runtime modification of module attributes, helping ensure interface stability.Add
Namespace
class providing a completely immutable alternative totypes.SimpleNamespace
. All attributes must be set during initialization and cannot be modified afterward.Add
Object
base 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
copy
andwith_data
, additional operations, such as union (|
) and intersection (&
):Dictionary
for simple immutable mappingsValidatorDictionary
which uses a provided validator function
Add metaclasses for creating classes with immutable class attributes:
Class
for standard classesABCFactory
for abstract base classesProtocolClass
for protocol classes
Add qualified aliases in
qaliases
module 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.