Skip to main content

multidict implementation

Project description

Multidicts are useful for working with HTTP headers, URL query args etc.

The code was extracted from aiohttp library.

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.

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

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
multidict-2.1.2-cp34-cp34m-manylinux1_i686.whl (316.5 kB) Copy SHA256 hash SHA256 Wheel cp34
multidict-2.1.2-cp34-cp34m-manylinux1_x86_64.whl (344.6 kB) Copy SHA256 hash SHA256 Wheel cp34
multidict-2.1.2-cp34-cp34m-win32.whl (126.2 kB) Copy SHA256 hash SHA256 Wheel cp34
multidict-2.1.2-cp34-cp34m-win_amd64.whl (133.9 kB) Copy SHA256 hash SHA256 Wheel cp34
multidict-2.1.2-cp35-cp35m-manylinux1_i686.whl (312.9 kB) Copy SHA256 hash SHA256 Wheel cp35
multidict-2.1.2-cp35-cp35m-manylinux1_x86_64.whl (340.8 kB) Copy SHA256 hash SHA256 Wheel cp35
multidict-2.1.2-cp35-cp35m-win32.whl (124.2 kB) Copy SHA256 hash SHA256 Wheel cp35
multidict-2.1.2-cp35-cp35m-win_amd64.whl (134.5 kB) Copy SHA256 hash SHA256 Wheel cp35
multidict-2.1.2.tar.gz (91.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page