A list-like structure which implements collections.abc.MutableSequence
Project description
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.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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for frozenlist-1.1.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 301220a5752fc2585ef97794b1dc88f87d77f5c1951782488896fcb6a732f883 |
|
MD5 | f12c1f5537f5b0578627abaf5355ec38 |
|
BLAKE2b-256 | b3b0b94ad2c6577ccf9c4575e0b5fda431a03bc6cd364c9ccd9e0094a366ca33 |
Hashes for frozenlist-1.1.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 803bc0fdb904a762b0a49572fe2f1cb2a03ade5514b265971da5c3e7a8b14798 |
|
MD5 | 7c863203ef9c4b6b5357dd48bc194f71 |
|
BLAKE2b-256 | d001a969fe6b07d6dbfba6d9cf975e6d7a2937d0efebf3fb256b7826b84c3b09 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08a4f1bd182659416c8ae518ef8a63c37953eb2d4bd77cf8b45941a90e87d27c |
|
MD5 | 731f2249216e5a89de69c1f32fd3b8cb |
|
BLAKE2b-256 | e7eab330ae14d6c76a1a8e5aafcf9234afe00ea8eba64ade83b6d8b8c511404e |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ee0bca9801eea5431680bdf22817b1b07310474ac284a3aa7a3902d0dba2382 |
|
MD5 | 159a1ea346c95739cd06ea291687a677 |
|
BLAKE2b-256 | 24bd1f642a1eb81eaaf3085695493bba1a9ce12df1997d2907816a972e644972 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2ebc6dd4f73f39212073add6b3a629a4274ed0a5e43c2fa87bd91957f511450 |
|
MD5 | ca3e7800c86d1b9eb32c740ce9a25b5a |
|
BLAKE2b-256 | e90fd90a0c3861ad6cf01c51e56aa82505bb1127a2fc5f7d97fe5fcb579efcb1 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e2d35804cf42b58e42e9b2cca6a2a5bb7155bb545808ff652503a8bacab2be5d |
|
MD5 | 88c14a3d21222dd262426ad488e3d021 |
|
BLAKE2b-256 | 9280409fe477d4ef1f60a06ec20ab7f38aae681143f362c806d38c3ac5edd9b6 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fdfb300d205f3d007462d66c9e8ffa89d7b1b3699e538ae7344845223291ff0 |
|
MD5 | 6906a7fcd60df94559ef80cacf2db503 |
|
BLAKE2b-256 | 3c9c1cef68bab012270a8c6fbcc36598549d434da982c1a5aa56b0a43c812350 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1032a7eb76ca47cb94dcfd05a289dfb2f31b5e155c9cd845f97a56526eca9800 |
|
MD5 | 611fa75ca7aaf31a6aea0478bf3f93a3 |
|
BLAKE2b-256 | 9571ad4827e8b41d0992af459a1cd92fa564c049580743e23a2f566a59049b04 |
Hashes for frozenlist-1.1.1-cp39-cp39-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fbdc86968f71d1d1e216f1f3467da96571b092378ad55b7eb6fc9f3ff877902 |
|
MD5 | 3e787393caac3d695d6ef290c7ec201d |
|
BLAKE2b-256 | 628df4fafe22f332db4670625fb9e03b083cc1ac96536786a8d4021176dd690b |
Hashes for frozenlist-1.1.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d2d80222eefe6e08b8167005e5a0c1a05ce784ce97de4d6d693be7e2a99862 |
|
MD5 | e06b59aebac232e47f61ebba4fa467ea |
|
BLAKE2b-256 | 59e9c6a8587b37974b026074b0e0e32dd1fc01dd62d33949cb00d8dff794afca |
Hashes for frozenlist-1.1.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c1cefdc3666507f7241b120b828e223c1dfb18e599f960ebbd0558de5010efe |
|
MD5 | 149dd6596667812a416256d289306e5a |
|
BLAKE2b-256 | 3e0eca98ef19f47f9e1505826dcc8c20bce1586d7193460f77e7ab145c498ed3 |
Hashes for frozenlist-1.1.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5cba2a537bcf8b4abffc9e01b037eb4ca5c9d1cb29d575fd433f82919a04c68 |
|
MD5 | 176473b312fdfb9b647aba2f18068cdb |
|
BLAKE2b-256 | bbc392f2386045ef2c18d313f35ee196b72d68cc929c70c27c3b3a2c64571af5 |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84ef9f6f6f8e2dd9cf828367c61715202a781ef6d32caa9a016d9055a7daef8b |
|
MD5 | 9b9294417766d5a16e465287c960cd52 |
|
BLAKE2b-256 | 137ca538aacd94fd1e3275f064d98c3b72a54d695bd2f946e5f54fb73b335d79 |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4282d897ea190b5e38a18fc3b70295e20e00af7734892250876e1e1b452a7dc8 |
|
MD5 | db66ea353acb39ab737985e97b50cc97 |
|
BLAKE2b-256 | 9b6a84ad9bb93edead1b7872418112df87fedce4adff879fd59ddb785cee6f3d |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66f7ba888fe51685502be51ad548b226eb4214fcab0ef48672a2a91a4de08417 |
|
MD5 | e6923f1f264d934ec18f81204ae5d55a |
|
BLAKE2b-256 | b65d707c6fda947a0b877cc0bd199abbadcf3156cc4f188a21663a87ccfdaa71 |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d07f08268b8d37c357f4d34272f1f7588a0618d3fa509a87ad614b5e1cf7109f |
|
MD5 | cb3874ead87228c2b6b6b7c91e995335 |
|
BLAKE2b-256 | 4b994216fcbb677c2686dbf87e64e6bb8b2f3b62b7261adead4e037cfdc224eb |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aea1b84bbebec7c46cd59da13aff90e23bece13bba91974a305bd555f66a72f3 |
|
MD5 | 6ff004cb06244d977a8905629c7607b1 |
|
BLAKE2b-256 | b90442a8b212b117547fc4a3902eff5364aea667da8b9b3964e90919ae743322 |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caba5ae97c40020771502866dee5024b0031187293185ca5c7714ea52a824a92 |
|
MD5 | 5be26f56f850f40938ab460b7484eec4 |
|
BLAKE2b-256 | ead0f72b64d44613e509694869061d0d75745b1b181fe5c4c02110645447f321 |
Hashes for frozenlist-1.1.1-cp38-cp38-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 748150da8bbd9cbe1b29f0965a675b5732337ae874eed47ccb48dfa75815d0d7 |
|
MD5 | e53fed4606d19dc8b0ae1552a79c10ec |
|
BLAKE2b-256 | 86e410582020807f4f3229583a395874a0e1a5aa69921f62171e61d48472c834 |
Hashes for frozenlist-1.1.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 572a5a0977b1bd2f15183a352df907726b20da5f91cd1242343b0d72ac677be6 |
|
MD5 | da717ab665d8e1e2c101723cfd1eb114 |
|
BLAKE2b-256 | 43a8c7e46d8b51ba351d4eeab1622b8c6124aa3d47357386be134e74d0adefc7 |
Hashes for frozenlist-1.1.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 158c6258ab4ee8a01470d86e75a7514091391b27bb400ba28a7f6a30466cc8e0 |
|
MD5 | 8fd4b85104b6fedcf59387dfa90d84c5 |
|
BLAKE2b-256 | 2bd87bc6e603b8b18f108de00720b1c95de3b60c1d0e9729c191d90b47000658 |
Hashes for frozenlist-1.1.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de170ea97e7b5051a13989ea457300b8159c00455d2207d22afb6b129a433152 |
|
MD5 | 73a5e30963c0aed74ecbb95a93865db7 |
|
BLAKE2b-256 | aab42b5d8be2b7deb58d8aaefc7501b29f0ee276b046851ae1f3ba09b19e13cf |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c228886891dc0170d21acbfb62fea801856c3fa207619c973e17d96455ab83e3 |
|
MD5 | 1808bc70d88ede927201a06b2307321e |
|
BLAKE2b-256 | 581cb78b3071864c7a04be9e457342ac17a6c0c05c5bb321b1be84dc72ccab6c |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe463e7b3cd089d221f33bd9c22cfad2726622b2a96c3af56a8eb5a71c0943bd |
|
MD5 | 04b88f6f31a2e6382e51c81535c67efb |
|
BLAKE2b-256 | e7363e7505cee495519ea90da6da4a54e5faa18fb264d3579becf8bdd508c47d |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7443d815fd9ff2de75b810e192cfa92854bada43aed47ec1598766c7bc9d4a40 |
|
MD5 | ac8a3554c2fbc3dfa566e7ae449de3cf |
|
BLAKE2b-256 | 7e8d93acd87b140f08db5c8a15b01f3d57394fa19855098f4958d715ff458781 |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f1f56a36962e28c304872797e226cd646395381de97517870fb819ff7b4f496 |
|
MD5 | 5b6ee823e543ecaaa2efa2a2d5c59a47 |
|
BLAKE2b-256 | 8908aaa1f744c3cacd2e602c66daa206bf86c19902f62924069938725d14a100 |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efb805e383836250bef3c99f1857c432a8941c802d0ed7767751315617a54794 |
|
MD5 | 8546f15d99b128095ea28e09f492282e |
|
BLAKE2b-256 | b6126753114d1dab8d1e26152b61b15a199c818c2f629376e7e84f103b7f749f |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3cf6737afc4347092a0c8392b4c0e77acc5594e73f4aef355705117a945743a |
|
MD5 | d8b277b016d8789bc396b929ced4e398 |
|
BLAKE2b-256 | 74226e8e7fbb2019b05691bd7caa2070e6f68bb7397768d8584037fa76e8c46e |
Hashes for frozenlist-1.1.1-cp37-cp37m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d160a73e4a034a857a98384b5e05204c375489d2bbb6ecf1ee8fc124735028fa |
|
MD5 | 0d9b7e0d6e376de2385f5a413273f5ad |
|
BLAKE2b-256 | 5a3146193d033e965ebf61451487b51cb66dd2c247981ecf8d171967212c83c8 |
Hashes for frozenlist-1.1.1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32491ac26e72e5f35913887bc3ab7bcfe562b4fb65b0e58350fce6efa22fec75 |
|
MD5 | abfb28662c53c13580b92b2fac8e5990 |
|
BLAKE2b-256 | fd638535a6ced74e82bd151982b884cd7d2581005cc719796f3901dabbf9ecfe |
Hashes for frozenlist-1.1.1-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c4c42bdbf5754010e0cc5cc0f91019437839bc6b7e585262bcc126557a244bc |
|
MD5 | ebf3e038e74875c609e235302bc2b8d5 |
|
BLAKE2b-256 | 1ff19ab049b91a2db2ac091b14e7daf2327ad647038bb5f5f2ddad6103c7312d |
Hashes for frozenlist-1.1.1-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 08428f9d0178b6fa0da95a42ab87a5b20ed2a707bacc97e3689e96ae6cab13fa |
|
MD5 | 69d6c1d400246886bbf39e2794c7dc6d |
|
BLAKE2b-256 | 9725d54fc1862f4c0ca38d1ad9343ea56b267e994214bee1c537c42951380067 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc6d994de78b11e1f465f2224c56858eb52cb51c8f9faf0c33e5799184d414a7 |
|
MD5 | 18b0098a4ef7d78185a0db013aeb17af |
|
BLAKE2b-256 | c1abf15a385b1e5435fcc6c9cf97be8eaaebeb4a637d94922e55759b93c8d004 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux2014_s390x.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 657341b9bc166d3f7418d37e1decf6d95485501e0d0e7da1a26a881e624216c6 |
|
MD5 | 7502fda253e81909b92a885f404d0ed0 |
|
BLAKE2b-256 | b707461284bf5bc8e74c9accca955db75017974d848a8d0eb03b350268261e70 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux2014_ppc64le.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7622f5c4c3dfaa09b9c6a62fb1af94da124626bb30f3ad9095f9cec6328074c1 |
|
MD5 | 3c5d7b3b4e306118d0085286006270e6 |
|
BLAKE2b-256 | 7294a9f1604d452ba8d227c6870579bbbc9ce4119f6f7f4ca4c65eee3aa11265 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e7b18fdf6682028f512d3e6142b79ca95b9b66f30c1bec2be237160d9eb6518 |
|
MD5 | 1d2a8a4aeac3959b892eae9628c463bb |
|
BLAKE2b-256 | 7f9743daffc754d23202d9a56b5bd8c732dce26f474a46d58671000c2a529350 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3c4f7399e7338a5788d32802017f94aaab3267afa8b1a663272b81eee7193e66 |
|
MD5 | b6992b7b1a67b0aa79f88faaaad6454b |
|
BLAKE2b-256 | 9405b0d8e88b1b6c5b9235064817cc38879da771139852d2f8f17e4aa5c48e41 |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 313384e54a7285a6f20ca6530b207a0a9cf6ebcda6c7b074ee802e4a82a0a6dc |
|
MD5 | 0306066c7ea3de066c2b37b4e434847e |
|
BLAKE2b-256 | 57606a3089a740383bb16db77d7b04b3150a80fc5ad8f8f52de43186230ba51d |
Hashes for frozenlist-1.1.1-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 451b445120ea95d86af3817bbd4d67ab77269fe7f055dc67b8c70bf4633f4efe |
|
MD5 | 132a5be8b810e36e665ab3fea5622d96 |
|
BLAKE2b-256 | 5bae5495cae26969ce488f6dd7f719a03d566c7f84ea24a49db7bbe45e9e220e |
Hashes for frozenlist-1.1.1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 968b520ef969541b2c8f47d9a13c78e080806dc97862434d29163d44c2c1d709 |
|
MD5 | be4a0feab5029163262b561d9db6cd00 |
|
BLAKE2b-256 | 203a08a1eac4d623deff19c721914fd5a7a7a77725c53eb1140168f1e90372d3 |