Aliases

The frigid.qaliases module provides qualified aliases for immutable data structures. These aliases are prefixed with “Immutable” to clearly indicate their behavior and avoid namespace conflicts.

>>> from frigid.qaliases import ImmutableDictionary, ImmutableNamespace
>>> from frigid import Dictionary, Namespace

The qualified aliases are equivalent to their original classes:

>>> ImmutableDictionary is Dictionary
True
>>> ImmutableNamespace is Namespace
True

This is particularly useful when working in codebases that might have multiple dictionary or namespace implementations:

>>> from types import SimpleNamespace
>>> from collections import UserDict
>>>
>>> # Clear which one is immutable
>>> config = ImmutableNamespace( debug = True )
>>> data = ImmutableDictionary( count = 42 )

All core classes have qualified aliases:

>>> from frigid.qaliases import (
...     # Class factories
...     ImmutableClass,
...     ImmutableABCFactory,
...     ImmutableProtocolClass,
...     # Dictionaries
...     AbstractImmutableDictionary,
...     ImmutableDictionary,
...     ImmutableValidatorDictionary,
...     # Other types
...     ImmutableModule,
...     ImmutableNamespace,
...     ImmutableObject,
... )