37 lines
1.1 KiB
ReStructuredText
37 lines
1.1 KiB
ReStructuredText
==========
|
|
frozendict
|
|
==========
|
|
|
|
``frozendict`` is an immutable wrapper around dictionaries that implements the
|
|
complete mapping interface. It can be used as a drop-in replacement for
|
|
dictionaries where immutability is desired.
|
|
|
|
Of course, this is ``python``, and you can still poke around the object's
|
|
internals if you want.
|
|
|
|
The ``frozendict`` constructor mimics ``dict``, and all of the expected
|
|
interfaces (``iter``, ``len``, ``repr``, ``hash``, ``getitem``) are provided.
|
|
Note that a ``frozendict`` does not guarantee the immutability of its values, so
|
|
the utility of ``hash`` method is restricted by usage.
|
|
|
|
The only difference is that the ``copy()`` method of ``frozendict`` takes
|
|
variable keyword arguments, which will be present as key/value pairs in the new,
|
|
immutable copy.
|
|
|
|
Example shell usage:
|
|
|
|
.. code-block:: python
|
|
|
|
from frozendict import frozendict
|
|
|
|
fd = frozendict({ 'hello': 'World' })
|
|
|
|
print fd
|
|
# <frozendict {'hello': 'World'}>
|
|
|
|
print fd['hello']
|
|
# 'World'
|
|
|
|
print fd.copy(another='key/value')
|
|
# <frozendict {'hello': 'World', 'another': 'key/value'}>
|