diff options
author | SVN-Git Migration <python-modules-team@lists.alioth.debian.org> | 2015-10-08 13:41:15 -0700 |
---|---|---|
committer | SVN-Git Migration <python-modules-team@lists.alioth.debian.org> | 2015-10-08 13:41:15 -0700 |
commit | 4fad8c1375c73a3d4483fe78e4534c7dabc453f5 (patch) | |
tree | cd9f3e8c6811892a2cea932b9d1d97b41945b712 /requests/structures.py | |
download | python-requests-4fad8c1375c73a3d4483fe78e4534c7dabc453f5.tar python-requests-4fad8c1375c73a3d4483fe78e4534c7dabc453f5.tar.gz |
Imported Upstream version 0.4.1
Diffstat (limited to 'requests/structures.py')
-rw-r--r-- | requests/structures.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/requests/structures.py b/requests/structures.py new file mode 100644 index 0000000..0c82c7b --- /dev/null +++ b/requests/structures.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- + +""" +requests.structures +~~~~~~~~~~~~~~~~~~~ + +Datastructures that power Requests. + +""" + +from UserDict import DictMixin + + +class CaseInsensitiveDict(DictMixin): + """Case-insensitive Dictionary for :class:`Response <models.Response>` Headers. + + For example, ``headers['content-encoding']`` will return the + value of a ``'Content-Encoding'`` response header.""" + + def __init__(self, *args, **kwargs): + # super(CaseInsensitiveDict, self).__init__() + self.data = dict(*args, **kwargs) + + def __repr__(self): + return self.data.__repr__() + + def __getstate__(self): + return self.data.copy() + + def __setstate__(self, d): + self.data = d + + def _lower_keys(self): + return map(str.lower, self.data.keys()) + + + def __contains__(self, key): + return key.lower() in self._lower_keys() + + + def __getitem__(self, key): + + if key.lower() in self: + return self.items()[self._lower_keys().index(key.lower())][1] + + + def __setitem__(self, key, value): + return self.data.__setitem__(key, value) + + + def __delitem__(self, key): + return self.data.__delitem__(key) + + + def __keys__(self): + return self.data.__keys__() + + + def __iter__(self): + return self.data.__iter__() + + + def iteritems(self): + return self.data.iteritems() |