Skip to content

v1.0

Choose a tag to compare

@github-actions github-actions released this 05 Dec 03:50
· 95 commits to master since this release
v1.0
b0cde28

Frigid v1.0 (2024-12-05)

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 and reclassify_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 to
    types.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 calling
    super().__init__().

  • Add immutable dictionaries, which have additional methods, such as copy and
    with_data, additional operations, such as union (|) and intersection
    (&):

    • Dictionary for simple immutable mappings
    • ValidatorDictionary which uses a provided validator function
  • Add metaclasses for creating classes with immutable class attributes:

    • Class for standard classes
    • ABCFactory for abstract base classes
    • ProtocolClass 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.