frozenlist
A list-like structure which implements collections.abc.MutableSequence
Decision gist · record as of 2026-08-14
Yes. FrozenList is stable, actively maintained, has zero dependencies, and solves a real problem—bridging the gap between mutable construction and immutable finalization. No security vulnerabilities. The Apache-2.0 license is permissive. Install it if you need a hashable list-like container or want to enforce immutability after initialization.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Low install friction with no runtime dependencies.
- Active maintenance with recent releases and broad Python version support from 3.9 through 3.14, including PyPy.
License · maintenance · safety
Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions.
last release 2025-10-06 (312 days) · last repo commit 2026-08-10 · 124 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 554,242,815 downloads/mo, #65 on PyPI
Alternatives
Verify before relying
pip install frozenlist
from frozenlist import FrozenList
fl = FrozenList([17, 42])
fl.append('spam')
fl.freeze()
# fl.append('more') raises RuntimeError
hash(fl) # now hashable- Performance characteristics compared to standard tuple or frozenset for typical use patterns.
- Memory overhead of the freeze mechanism relative to built-in immutable types.
What it is and what it does
FrozenList is a mutable sequence container that implements the collections.abc.MutableSequence interface. You create it with initial data, modify it freely like a normal list, then call freeze() to lock it against further changes. Once frozen, any attempt to modify the list raises RuntimeError, and the frozen list becomes hashable so it can be used as a dictionary key or set member.
The package is implemented in Cython for performance and has no runtime dependencies. It's actively maintained with wheels built for multiple Python versions (3.9–3.14) and implementations (CPython, PyPy), making installation straightforward across platforms.
Use it for
- Use as a dictionary key or set member after populating and freezing to ensure immutability.
- Build a collection incrementally during initialization, then lock it to prevent accidental modifications.
- Cache data structures that must remain unchanged after construction in multi-threaded or async contexts.
- Replace tuple when you need mutable construction followed by immutable finalization.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
FrozenList is stable, actively maintained, has zero dependencies, and solves a real problem—bridging the gap between mutable construction and immutable finalization. No security vulnerabilities. The Apache-2.0 license is permissive. Install it if you need a hashable list-like container or want to enforce immutability after initialization.
Install
frozenlist on PyPI
Before you install
Low install friction with no runtime dependencies. Active maintenance with recent releases and broad Python version support from 3.9 through 3.14, including PyPy.
Requires Python 3.9 or later.
License in practice
Apache-2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions.
Quickstart
pip install frozenlist
from frozenlist import FrozenList
fl = FrozenList([17, 42])
fl.append('spam')
fl.freeze()
# fl.append('more') raises RuntimeError
hash(fl) # now hashable
Verify before relying
- Performance characteristics compared to standard tuple or frozenset for typical use patterns.
- Memory overhead of the freeze mechanism relative to built-in immutable types.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 312 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 554,242,815 / month, #65 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXProgramming Language :: CythonProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: frozenlist-1.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “frozen list hashable”
- frozenlistProvides a list-like container that starts mutable but can be frozen…
- itypesProvides immutable container types (Dict and List) for Python that…
- collections-extendedProvides four specialized collection types—bag (multiset), setlist…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
Provides an immutable mapping type backed by a Hash Array Mapped Trie (HAMT) data structure, offering O(log N) performance for get and set operations with hashable, comparable, and pickleable Map objects.
OrderedSet is a mutable collection that combines set semantics with list-like ordering and index-based access, supporting set operations while remembering insertion order.
Not recommended if you require active maintenance or expect frequent updates to track Python evolution.
Provides a mutable and immutable multiset data structure that extends Python's set semantics to allow duplicate elements, supporting set operations like union, intersection, and difference.
However, maintenance is dormant (last release 717 days ago), so consider whether you need active support or can rely on a mature, unchanging implementation.
Provides four specialized collection types—bag (multiset), setlist (ordered set), bijection (one-to-one mapping), and IndexedDict (ordered dict with index access)—as pure Python implementations with no external dependencies.
Provides Python bindings to Rust's persistent data structures (rpds crate), offering immutable hash maps, sets, and lists with structural sharing for efficient memory use.
Provides specialized collection classes that extend Python's standard library collections module, including range-based mappings, case-insensitive dicts, bijective maps, and other utility containers.
Install it if your code needs any of its specialized mappings; otherwise, it's not a required dependency.
See also cached_method · constantdict · propcache · frozendict