==========
.. image:: https://github.com/aio-libs/frozenlist/workflows/CI/badge.svg :target: https://github.com/aio-libs/frozenlist/actions :alt: GitHub status for master branch
.. image:: https://codecov.io/gh/aio-libs/frozenlist/branch/master/graph/badge.svg :target: https://codecov.io/gh/aio-libs/frozenlist :alt: codecov.io status for master branch
.. image:: https://badge.fury.io/py/frozenlist.svg :target: https://pypi.org/project/frozenlist :alt: Latest PyPI package version
.. image:: https://readthedocs.org/projects/frozenlist/badge/?version=latest :target: https://frozenlist.readthedocs.io/ :alt: Latest Read The Docs
.. image:: https://img.shields.io/discourse/topics?server=https%3A%2F%2Faio-libs.discourse.group%2F :target: https://aio-libs.discourse.group/ :alt: Discourse group for io-libs
.. image:: https://badges.gitter.im/Join%20Chat.svg :target: https://gitter.im/aio-libs/Lobby :alt: Chat on Gitter
frozenlist.FrozenList
is a list-like structure which implements
collections.abc.MutableSequence
. The list is mutable until FrozenList.freeze
is called, after which list modifications raise RuntimeError
:
from frozenlist import FrozenList fl = FrozenList([17, 42]) fl.append('spam') fl.append('Vikings') fl ", line 1, in File "frozenlist/frozenlist.pyx", line 97, in frozenlist.frozenlist.FrozenList.append self.checkfrozen() File "frozenlist/frozenlist.pyx", line 19, in frozenlist.frozenlist.FrozenList.checkfrozen raise RuntimeError("Cannot modify frozen list.") RuntimeError: Cannot modify frozen list.
FrozenList is also hashable, but only when frozen. Otherwise it also throws a RuntimeError:
fl = FrozenList([17, 42, 'spam']) hash(fl) Traceback (most recent call last): File "", line 1, in File "frozenlist/frozenlist.pyx", line 111, in frozenlist.frozenlist.FrozenList.hash raise RuntimeError("Cannot hash unfrozen list.") RuntimeError: Cannot hash unfrozen list. fl.freeze() hash(fl) 3713081631934410656 dictionary = {fl: 'Vikings'} # frozen fl can be a dict key dictionary {
::
$ pip install frozenlist
The library requires Python 3.6 or newer.
https://frozenlist.readthedocs.io/
aio-libs discourse group: https://aio-libs.discourse.group
Feel free to post your questions and ideas here.
gitter chat https://gitter.im/aio-libs/Lobby
frozenlist
is offered under the Apache 2 license.
The project is hosted on GitHub_
Please file an issue in the bug tracker
<https://github.com/aio-libs/frozenlist/issues>
_ if you have found a bug
or have some suggestions to improve the library.
.. _GitHub: https://github.com/aio-libs/frozenlist