NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #863 most downloaded on PyPI
A simple immutable dictionary
Last release 10 months ago
11 Nov 2025
Release timing varies
gaps range from 2 weeks to 1.1 years
Most releases are documented
notes for 30 of 39 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
39 releases · first in 2012
Now pickle is only marginally slower than dict for C Extension!
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.6...v2.4.7
Full Changelog: v2.4.6...v2.4.7
One column per quarter.
Added pure py wheel for Python 3.13
set, setdefault and delete does always a shallow copy, as the C extension, tuple and the rest of the world.Full Changelog: v2.4.5...v2.4.6
Improved speed of set , setdefault and delete for pure py impl, if frozendict is hashable
set, setdefault and delete for pure py impl, if frozendict is hashableFull Changelog: v2.4.4...v2.4.5
Added typing for deepfreeze, register and unregister (see #99)
Added typing for deepfreeze, register and unregister (see #99)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.3...v2.4.4
Added typing for deepfreeze, register and unregister (see #99)
Full Changelog: v2.4.3...v2.4.4
Now enums are not modified by deepfreeze (see #98)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.2...v2.4.3
Full Changelog: v2.4.2...v2.4.3
deepfreeze doesn't change anymore the original object, by @kenodegard in https://github.com/Marco-Sulla/python-frozendict/pull/97
deepfreeze doesn't change anymore the original object, by @kenodegard in https://github.com/Marco-Sulla/python-frozendict/pull/97
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.1...v2.4.2
deepfreeze doesn't change anymore the original object, by @kenodegard in #97
Full Changelog: v2.4.1...v2.4.2
In deepfreeze, prefer registered conversions by @eischaefer in https://github.com/Marco-Sulla/python-frozendict/pull/95
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.4.0...v2.4.1
Full Changelog: v2.4.0...v2.4.1
Implemented deepfreeze, a function that let you transform any object, nested at any level, in a frozen one. Check the docs.
Implemented deepfreeze, a function that let you transform any object, nested at any level, in a frozen one. Check the docs.
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.10...v2.4.0
Implemented deepfreeze, a function that let you transform any object, nested at any level, in a frozen one. Check the docs.
Full Changelog: v2.3.10...v2.4.0
Fix pickling in python implementation by @apmorton in https://github.com/Marco-Sulla/python-frozendict/pull/91
FROZENDICT_PURE_PY env var in conda buildsFull Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.9...v2.3.10
FROZENDICT_PURE_PY env var in conda buildsFull Changelog: v2.3.9...v2.3.10
Various improvements to type hints
FROZENDICT_PURE_PY env var with value 1Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.8...v2.3.9
FROZENDICT_PURE_PY env var with value 1Full Changelog: v2.3.8...v2.3.9
Added type annotations to pyi interface file. by @gauravmm in https://github.com/Marco-Sulla/python-frozendict/pull/70
frozendict type hints.cibuildwheel is set to skip Python 3.11 and Pypy by default in pyproject.tomlFull Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.7...v2.3.8
Fixed a regression in sdist packages that made them not working in the previous release (by @sunpoet in https://github.com/Marco-Sulla/python-frozendi
Fixed a regression in sdist packages that made them not working in the previous release (by @sunpoet in https://github.com/Marco-Sulla/python-frozendict/pull/77)
Added arm64 builds for all supported archs (Linux, Windows, Mac)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.6...v2.3.7
Added monkeypatches to json and orjson, so you can serialize frozendict directly
json and orjson, so you can serialize frozendict directlyFull Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.5...v2.3.6
C Extension is now optional by default
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.4...v2.3.5
Implemented a memory leak tracer
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.3...v2.3.4
Fixed memory leaks in repr() and in costruction of an empty frozendict.
Fixed memory leaks in repr() and in costruction of an empty frozendict.
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.2...v2.3.3
Fixed a memory leak in __hash__() (thanks to @gusostow for the report)
Fixed a memory leak in __hash__() (thanks to @gusostow for the report)
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.1...v2.3.2
Added key([index]), value([index]) and item([index]) methods
key([index]), value([index]) and item([index]) methodsFull Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.3.0...v2.3.1
Added set, delete and setdefault methods.
Added set, delete and setdefault methods.
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.2.1...v2.3.0
Fix segfault on equals between a frozendict and any other dict-like object different but with the same length, in Python 3.6
frozendict and any other dict-like object different but with the same length, in Python 3.6Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.2.0...v2.2.1
Added binaries for all supported Py versions (3.7+), OSes (Linux, Windows, MacOS) and architectures (x86_64)
frozendict no more inherits from MutableMapping. We recommend anyway the C Extension.Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.1.3...v2.2.0
Fixed segfaults on Debian: https://github.com/Marco-Sulla/python-frozendict/issues/41
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.1.2...v2.1.3
Added binaries for many platforms. Yet no binary for Windows.
Added binaries for many platforms. Yet no binary for Windows.
fixed a bug with pickle in MacOS
pickle in MacOSrepr() now is identical in pure py version and in C extensionFull Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.1.0...v2.1.1
Re-added (deprecated) FrozenOrderedDict
New features:
|Bug fixes:
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.0.7...v2.1.0
Now frozendict C extension compiles also for Python 3.10
Now frozendict C extension compiles also for Python 3.10
Full Changelog: https://github.com/Marco-Sulla/python-frozendict/compare/v2.0.4...v2.0.7
Nothing published for this version
Nothing published for this version
Now 'cls' can be a key in the pure py version
Now 'cls' can be a key in the pure py version
Inhibited the update operator __ior__() (|=) introduced in Python 3.9
Inhibited the update operator __ior__() (|=) introduced in Python 3.9
PS: no pure Linux C builds, since they can't be published on Pypi. For now I'm focusing on the pure py implementation
Various improvements to the C implementation.
Various improvements to the C implementation.
Completely reworked. Now frozendict inherits directly from dict and does not use the slow MappingProxyType anymore. Immutability is preserved anyway.
Completely reworked. Now frozendict inherits directly from dict and does not use the slow MappingProxyType anymore. Immutability is preserved anyway.
Notable speed-ups in all methods.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →