Spaces:
Runtime error
Runtime error
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 <[email protected]> | |
Maintainer-email: [email protected] | |
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 | |