[docs]
class CaseInsensitiveDict(dict):
"""
Behaves identical to python's built-in dict, but
allows access to keys case insensitively
.. code-block:: python
spam = CaseInsensitiveDict({'FOO': 'bar'})
spam['FOO'] == 'bar'
spam['foo'] == 'bar'
spam.get('foo') == 'bar'
"""
def __getitem__(self, key):
for k in self.keys():
if k.lower() == key.lower():
return super().__getitem__(k)
return super().__getitem__(key)
[docs]
def get(self, key, default=None):
for k in self.keys():
if k.lower() == key.lower():
return super().get(k, default)
return super().get(key, default)