RETIRED, further work has moved to Debian project infrastructure
Go to file
Santiago Lezica c5d16bafcc Expand gitignore 2016-10-06 11:13:46 -03:00
frozendict Merge pull request #12 from lurch/patch-1 2016-10-06 15:52:42 +02:00
.gitignore Expand gitignore 2016-10-06 11:13:46 -03:00
LICENSE.txt Initial commit 2012-12-07 19:42:20 -03:00
MANIFEST.in Pre-package upload version 2012-12-11 16:05:45 -03:00
README.rst deleted README.md and modified/renamed README.txt to README.rst and changed from distutils to setuptools in order to treat README.rst as the standard README instead of README.txt 2016-04-16 05:56:06 +01:00
setup.py New version for pip 2016-10-06 10:54:50 -03:00

README.rst

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:

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'}>