gituser/docker_multiarch/: frozenlist-1.2.0 metadata and description
A list-like structure which implements collections.abc.MutableSequence
| author | Nikolay Kim |
| author_email | fafhrd91@gmail.com |
| classifiers |
|
| description_content_type | text/x-rst |
| license | Apache 2 |
| maintainer | Martijn Pieters <mj@zopatista.com> |
| maintainer_email | aio-libs@googlegroups.com |
| project_urls |
|
| requires_python | >=3.6 |
frozenlist
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.6 or newer.
Documentation
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.
Changelog
1.2.0 (2021-10-16)
Features
FrozenList now supports being used as a generic type as per PEP 585, e.g. frozen_int_list: FrozenList[int] (requires Python 3.9 or newer). #172
Added support for Python 3.10. #227
Started shipping platform-specific wheels with the musl tag targeting typical Alpine Linux runtimes. #227
Started shipping platform-specific arm64 wheels for Apple Silicon. #227
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