multidict implementation
Project description
Multidict is dict-like collection of key-value pairs where key might be occurred more than once in the container.
Introduction
HTTP Headers and URL query string require specific data structure: multidict. It behaves mostly like a regular dict but it may have several values for the same key and preserves insertion ordering.
The key is str (or istr for case-insensitive dictionaries).
multidict has four multidict classes: MultiDict, MultiDictProxy, CIMultiDict and CIMultiDictProxy.
Immutable proxies (MultiDictProxy and CIMultiDictProxy) provide a dynamic view for the proxied multidict, the view reflects underlying collection changes. They implement the collections.abc.Mapping interface.
Regular mutable (MultiDict and CIMultiDict) classes implement collections.abc.MutableMapping and allows to change their own content.
Case insensitive (CIMultiDict and CIMultiDictProxy) ones assume the keys are case insensitive, e.g.:
>>> dct = CIMultiDict(key='val') >>> 'Key' in dct True >>> dct['Key'] 'val'
Keys should be str or istr instances.
The library has optional Cython optimization for sake of speed.
License
Apache 2
3.3.2 (2017-11-02)
Fix tarball (again)
3.3.1 (2017-11-01)
Include .c files in tarball (#181)
3.3.0 (2017-10-15)
Introduce abstract base classes (#102)
Publish OSX binary wheels (#153)
3.2.0 (2017-09-17)
Fix pickling (#134)
Fix equality check when other contains more keys (#124)
Fix CIMultiDict copy (#107)
3.1.3 (2017-07-14)
Fix build
3.1.2 (2017-07-14)
Fix type annotations
3.1.1 (2017-07-09)
Remove memory leak in istr implementation (#105)
3.1.0 (2017-06-25)
Raise RuntimeError on dict iterations if the dict was changed (#99)
Update __init__.pyi signatures
3.0.0 (2017-06-21)
Refactor internal data structures: main dict operations are about 100% faster now.
Preserve order on multidict updates (#68)
Updates are md[key] = val and md.update(…) calls.
Now the last entry is replaced with new key/value pair, all previous occurrences are removed.
If key is not present in dictionary the pair is added to the end
Force keys to str instances (#88)
Implement .popall(key[, default]) (#84)
.pop() removes only first occurence, .popone() added (#92)
Implement dict’s version (#86)
Proxies are not pickable anymore (#77)
2.1.7 (2017-05-29)
Fix import warning on Python 3.6 (#79)
2.1.6 (2017-05-27)
Rebuild the library for fixning missing __spec__ attribute (#79)
2.1.5 (2017-05-13)
Build Python 3.6 binary wheels
2.1.4 (2016-12-1)
Remove LICENSE filename extension @ MANIFEST.in file (#31)
2.1.3 (2016-11-26)
Add a fastpath for multidict extending by multidict
2.1.2 (2016-09-25)
Fix CIMultiDict.update() for case of accepting istr
2.1.1 (2016-09-22)
Fix CIMultiDict constructor for case of accepting istr (#11)
2.1.0 (2016-09-18)
Allow to create proxy from proxy
Add type hints (PEP-484)
2.0.1 (2016-08-02)
Don’t crash on {} - MultiDict().keys() and similar operations (#6)
2.0.0 (2016-07-28)
Switch from uppercase approach for case-insensitive string to str.title() (#5)
Deprecase upstr class in favor of istr alias.
1.2.2 (2016-08-02)
Don’t crash on {} - MultiDict().keys() and similar operations (#6)
1.2.1 (2016-07-21)
Don’t expose multidict.__version__
1.2.0 (2016-07-16)
Make upstr(upstr(‘abc’)) much faster
1.1.0 (2016-07-06)
Don’t double-iterate during MultiDict initialization (#3)
Fix CIMultiDict.pop: it is case insensitive now (#1)
Provide manylinux wheels as well as Windows ones
1.0.3 (2016-03-24)
Add missing MANIFEST.in
1.0.2 (2016-03-24)
Fix setup build
1.0.0 (2016-02-19)
Initial implementation
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 multidict-3.3.2-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bce16633f3ee88863e4c9bcd7e037a6133c56fd9e7e7c0776bbaeeddcf154ac4 |
|
MD5 | 667dd86fc0f36fc097b14c3a94e710fa |
|
BLAKE2b-256 | 452ca21a2f213eaa0c3a0d45efe8cd9d8abd887b581966364c295a972099245b |
Hashes for multidict-3.3.2-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa04df1503fae7045883c57db47ba0c07de2ebe4a91c3e64d56f20d3d99e5dc8 |
|
MD5 | c2bc81c81a995f0552cacd5af9b3eb84 |
|
BLAKE2b-256 | 4860ee485eb941c7db7980e0bae187c354798020881d15673ce64e0ef5e09232 |
Hashes for multidict-3.3.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eb7d5d39463137726138fc14c8458131136b8f4b06ba65f1cecd7aa6abe91df1 |
|
MD5 | 8c0af05bbb7bf390def889a96c5484df |
|
BLAKE2b-256 | 2cf46ac2f49b101c2ad6696a908fa1c1e4853dd6904e1d87cb87b6927191794f |
Hashes for multidict-3.3.2-cp36-cp36m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | faf2b6447521d2075d03fb5e7c5467bac68f67df1c69e034ebca3afb6b3c619d |
|
MD5 | 58bb3497270b041175318bbc4700a6c4 |
|
BLAKE2b-256 | 0cc3c382e1964450eed98f5219a778315e7bac8ff52cbe1041f313c3d0580a0b |
Hashes for multidict-3.3.2-cp36-cp36m-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70630854b820d73ae102440123df38c983d77cd4ae444f3930a6bb6bbda87b76 |
|
MD5 | 0d878bdce2926af55350beb3118ef0cb |
|
BLAKE2b-256 | fbe41946c5ad7fb29251c5a8934b84b3b6589c53a2492ffbce132cdd2e93c910 |
Hashes for multidict-3.3.2-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90dc3b8fefc58a865d64957f8f901d724250ba2a40e02f49d0df0103e96f5afa |
|
MD5 | d22df437178b892150a28b52f1a81d64 |
|
BLAKE2b-256 | 875b37c520a57336966522bc6ccac3cf0e4f5d4cf187c25d67e8c7816b2070fe |
Hashes for multidict-3.3.2-cp36-cp36m-macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef6dc6e2d51b6058aa62cdd44dbf02c250c19eee6ff0065babc0ac126b068d43 |
|
MD5 | 27b2009775a483fe0ea5c7c9e3e585f0 |
|
BLAKE2b-256 | 80071ccd8bbc538efd8ae75f5d1b26b11020e7800c13fa2188077f1f2f15e462 |
Hashes for multidict-3.3.2-cp35-cp35m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f513f3bf933d7cb6f5741f6676d4fac1e96aa634161c071974f9bb86a7bbac9 |
|
MD5 | 0d1adbe83c06f15e49c1b925966d2402 |
|
BLAKE2b-256 | 05d8605e47252de872a7ed636e44c6c6f8cb02a905f57ba3340de8c3a3657481 |
Hashes for multidict-3.3.2-cp35-cp35m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebf1ba2af62dbaa37cf3db346830bb43d40d05a5f1f1966888a620f9b795e7c7 |
|
MD5 | 9f2b42e4983fd7123b344a9212393684 |
|
BLAKE2b-256 | d041e256a242997c34036d0c9838ced9884e7d2cc77c38e254598111ba35180f |
Hashes for multidict-3.3.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50dac1151e34974b04419073ee9726f4180c6daf3454fd4af258824a19ad8c1d |
|
MD5 | edb1801ee9562e2301eaf554415495d6 |
|
BLAKE2b-256 | 95959fa79bf5b1c779ec073a266e81344d010e45c6cc61cf8cc3d8884fc78399 |
Hashes for multidict-3.3.2-cp35-cp35m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cfb63f0ddfa86ce6e80eee64e4fe886f9dfdb6dbbd724997bccb66513b0e29f |
|
MD5 | 7edf8b342c0ef7aeefd4ff6b3e489353 |
|
BLAKE2b-256 | 5a025e880496e8b91246648551b55ec100f6e64737813f92db6315097f45cc13 |
Hashes for multidict-3.3.2-cp35-cp35m-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff2b92a41df2e4c5cafaefb782469f3e6053ed00026d75a398521096192d0408 |
|
MD5 | b7731ec278e82909529035bc1d0f4526 |
|
BLAKE2b-256 | 7342a74a27733e908f2b6efd9479f9fac91ebada6e7031f342ed2b70d1c08722 |
Hashes for multidict-3.3.2-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80abc93d197e24fb7c5aa5a8be3eacbcbc7115a2ff64e46162a4c2b46cd2f75a |
|
MD5 | 0486f4c94eb39094e4f802795d740891 |
|
BLAKE2b-256 | b0a5f1ca89876cc33d8a1508e672dcacc2f6bd470a885b0f9ac677f7846dbc5c |
Hashes for multidict-3.3.2-cp35-cp35m-macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 167558cfb7c43077b3d8602142109f2b52fae0841a7ff97eb0a7443db199f303 |
|
MD5 | 5234b7bcdcf6e0066a06ab7310c395ed |
|
BLAKE2b-256 | 47024d3f1aba6e551e4b875f089448af7264679bb71d9f43cedca3dc40bc7a13 |
Hashes for multidict-3.3.2-cp34-cp34m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24ec0d645ca70981e1c84e97e48c874b47f4970a173c8c751be9c213a8658e40 |
|
MD5 | 4d24e07bc0681de0d967f6b40745bea1 |
|
BLAKE2b-256 | d8873d23bc46e4672211629f1049106ae0c29deef02d123fa207e562231184b8 |
Hashes for multidict-3.3.2-cp34-cp34m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eb59892040198741944eafca0c34be4da6b58be7fddf6e491a2d9e7e1767548 |
|
MD5 | 4b341318ef570022e3f8340160f7abca |
|
BLAKE2b-256 | 018a9bd295f798f36ceb0ee89a956d29b695ba090781f76782f76d4b02c5a752 |
Hashes for multidict-3.3.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80e2bd17ea98fe77867771e1ee03433a54fa492a8413966a6caa766bdd6d6e62 |
|
MD5 | aa05913a2c54bd700b8893e75b77dcbd |
|
BLAKE2b-256 | 87522bbef39a3dd6f17ab2c72bfc3df6da3998e87cdf180ea4d2d2c3d05be86c |
Hashes for multidict-3.3.2-cp34-cp34m-manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3261b631cd6d079e6a20def3306b433794f800ea896dce4f1d5e833ad9bf6f26 |
|
MD5 | 8f49d7ecf53c961e05754ca52ac8c8cd |
|
BLAKE2b-256 | 3cae5e901aca3fdbdd347545953fa9bf7c6f4ff76d5204fbc0a71a81debd76d1 |
Hashes for multidict-3.3.2-cp34-cp34m-macosx_10_12_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80ad69b8330135b52a6da7a1f0ab6a278025bb72ea08768966785c829f515a6f |
|
MD5 | 2c286f3f49d29f25dae04ed0927cead5 |
|
BLAKE2b-256 | 46b0e6b3f229bad2a6bc776228af004319aab814aeecaab0633e17a45232d9d6 |
Hashes for multidict-3.3.2-cp34-cp34m-macosx_10_11_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7deb65a184cbe757faaf4c6d2b8f203cb1a11dd44603a34d7befc343253d5bf |
|
MD5 | c460ddb3a16716429854caad055295f5 |
|
BLAKE2b-256 | 4a1b458603763be47946ccf2c8dca9f6edf2ed01eb9af272cd179928508fd026 |
Hashes for multidict-3.3.2-cp34-cp34m-macosx_10_10_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d12dfcff45b5c0eb3d586289cbf928012e75f93f10f4b9d7af903acb07b3c226 |
|
MD5 | 7f90896cb88f275ad669a33867a53133 |
|
BLAKE2b-256 | 66bfe2abbafca2bf953d57b243ef58ff7ed046aeab1195040323dbbcd7ded5e8 |