"""
requests.structures
~~~~~~~~~~~~~~~~~~~
Data structures that power Requests.
"""
"""A case-insensitive ``dict``-like object.
Implements all methods and operations of
``MutableMapping`` as well as dict's ``copy``. Also
provides ``lower_items``.
All keys are expected to be strings. The structure remembers the
case of the last key to be set, and ``iter(instance)``,
``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()``
will contain case-sensitive keys. However, querying and contains
testing is case insensitive::
cid = CaseInsensitiveDict()
cid['Accept'] = 'application/json'
cid['aCCEPT'] == 'application/json' # True
list(cid) == ['Accept'] # True
For example, ``headers['content-encoding']`` will return the
value of a ``'Content-Encoding'`` response header, regardless
of how the header name was originally stored.
If the constructor, ``.update``, or equality comparison
operations are given keys that have equal ``.lower()``s, the
behavior is undefined.
"""
=
=
# Use the lowercased key for lookups, but store the actual
# key alongside the value.
=
return
del
return
return
"""Like iteritems(), but with all lowercase keys."""
return
=
return NotImplemented
# Compare insensitively
return ==
# Copy is required
return
return
"""Dictionary lookup object."""
=
return f
# We allow fall-through here, so values default to None
return
return