123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- Metadata-Version: 2.1
- Name: frozenlist
- Version: 1.4.0
- Summary: A list-like structure which implements collections.abc.MutableSequence
- Home-page: https://github.com/aio-libs/frozenlist
- Maintainer: aiohttp team <team@aiohttp.org>
- Maintainer-email: team@aiohttp.org
- License: Apache 2
- Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
- Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
- Project-URL: CI: Github Actions, https://github.com/aio-libs/frozenlist/actions
- Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
- Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/frozenlist
- Project-URL: Docs: Changelog, https://github.com/aio-libs/frozenlist/blob/master/CHANGES.rst#changelog
- Project-URL: Docs: RTD, https://frozenlist.aio-libs.org
- Project-URL: GitHub: issues, https://github.com/aio-libs/frozenlist/issues
- Project-URL: GitHub: repo, https://github.com/aio-libs/frozenlist
- 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.8
- Classifier: Programming Language :: Python :: 3.9
- Classifier: Programming Language :: Python :: 3.10
- Classifier: Programming Language :: Python :: 3.11
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: Operating System :: POSIX
- Classifier: Operating System :: MacOS :: MacOS X
- Classifier: Operating System :: Microsoft :: Windows
- Requires-Python: >=3.8
- Description-Content-Type: text/x-rst
- License-File: LICENSE
- ==========
- 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://img.shields.io/pypi/v/frozenlist.svg?logo=Python&logoColor=white
- :target: https://pypi.org/project/frozenlist
- :alt: frozenlist @ PyPI
- .. image:: https://readthedocs.org/projects/frozenlist/badge/?version=latest
- :target: https://frozenlist.aio-libs.org
- :alt: Read The Docs build status badge
- .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
- :target: https://matrix.to/#/%23aio-libs:matrix.org
- :alt: Matrix Room — #aio-libs:matrix.org
- .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
- :target: https://matrix.to/#/%23aio-libs-space:matrix.org
- :alt: Matrix Space — #aio-libs-space:matrix.org
- 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
- <FrozenList(frozen=False, [17, 42, 'spam', 'Vikings'])>
- >>> fl.freeze()
- >>> fl
- <FrozenList(frozen=True, [17, 42, 'spam', 'Vikings'])>
- >>> fl.frozen
- True
- >>> fl.append("Monty")
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- 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 "<stdin>", line 1, in <module>
- 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
- {<FrozenList(frozen=True, [1, 2])>: 'Vikings'}
- Installation
- ------------
- ::
- $ pip install frozenlist
- The library requires Python 3.8 or newer.
- Documentation
- =============
- https://frozenlist.aio-libs.org
- Communication channels
- ======================
- We have a *Matrix Space* `#aio-libs-space:matrix.org
- <https://matrix.to/#/%23aio-libs-space:matrix.org>`_ which is
- also accessible via Gitter.
- Requirements
- ============
- - Python >= 3.8
- 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
- <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
|