Metadata-Version: 2.1 Name: frozenlist Version: 1.1.1 Summary: A list-like structure which implements collections.abc.MutableSequence Home-page: https://github.com/aio-libs/frozenlist Author: Nikolay Kim Author-email: fafhrd91@gmail.com Maintainer: Martijn Pieters Maintainer-email: aio-libs@googlegroups.com License: Apache 2 Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby Project-URL: CI: Github Actions, https://github.com/aio-libs/frozenlist/actions Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/frozenlist Project-URL: Docs: RTD, https://frozenlist.readthedocs.io Project-URL: GitHub: issues, https://github.com/aio-libs/frozenlist/issues Project-URL: GitHub: repo, https://github.com/aio-libs/frozenlist Description: ========== frozenlist ========== .. 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 Introduction ============ ``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 >>> fl.freeze() >>> fl >>> fl.frozen True >>> fl.append("Monty") Traceback (most recent call last): File "", line 1, in File "frozenlist/_frozenlist.pyx", line 97, in frozenlist._frozenlist.FrozenList.append self._check_frozen() File "frozenlist/_frozenlist.pyx", line 19, in frozenlist._frozenlist.FrozenList._check_frozen 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 {: 'Vikings'} Installation ------------ :: $ pip install frozenlist The library requires Python 3.6 or newer. Documentation ============= https://frozenlist.readthedocs.io/ Communication channels ====================== *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 Requirements ============ - Python >= 3.6 License ======= ``frozenlist`` is offered under the Apache 2 license. Source code =========== The project is hosted on GitHub_ Please file an issue in the `bug tracker `_ if you have found a bug or have some suggestions to improve the library. .. _GitHub: https://github.com/aio-libs/frozenlist ========= Changelog ========= .. You should *NOT* be adding new change log entries to this file, this file is managed by towncrier. You *may* edit previous change logs to fix problems like typo corrections or such. To add a new change log entry, please see https://pip.pypa.io/en/latest/development/contributing/#news-entries we named the news folder "changes". WARNING: Don't drop the next directive! .. towncrier release notes start 1.1.1 (2020-11-14) ================== Bugfixes -------- - Provide x86 Windows wheels. `#169 `_ ---- 1.1.0 (2020-10-13) ================== Features -------- - Add support for hashing of a frozen list. `#136 `_ - Support Python 3.8 and 3.9. - Provide wheels for ``aarch64``, ``i686``, ``ppc64le``, ``s390x`` architectures on Linux as well as ``x86_64``. ---- 1.0.0 (2019-11-09) ================== Deprecations and Removals ------------------------- - Dropped support for Python 3.5; only 3.6, 3.7 and 3.8 are supported going forward. `#24 `_ Platform: UNKNOWN Classifier: License :: OSI Approved :: Apache Software License Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Development Status :: 5 - Production/Stable Classifier: Operating System :: POSIX Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: Microsoft :: Windows Requires-Python: >=3.6 Description-Content-Type: text/x-rst