loongson/pypi/: frozenlist-1.4.0 metadata and description
A list-like structure which implements collections.abc.MutableSequence
classifiers |
|
description_content_type | text/x-rst |
license | Apache 2 |
maintainer | aiohttp team <team@aiohttp.org> |
maintainer_email | team@aiohttp.org |
project_urls |
|
requires_python | >=3.8 |
Because this project isn't in the mirror_whitelist
,
no releases from root/pypi are included.
File | Tox results | History |
---|---|---|
frozenlist-1.4.0-cp38-cp38-linux_loongarch64.whl
|
|
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
Communication channels
We have a Matrix Space #aio-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 if you have found a bug or have some suggestions to improve the library.