# encoding: utf-8 """ Objects shared by modules in the pptx.opc sub-package """ from __future__ import absolute_import, print_function, unicode_literals class CaseInsensitiveDict(dict): """ Mapping type that behaves like dict except that it matches without respect to the case of the key. E.g. cid['A'] == cid['a']. Note this is not general-purpose, just complete enough to satisfy opc package needs. It assumes str keys for example. """ def __contains__(self, key): return super(CaseInsensitiveDict, self).__contains__(key.lower()) def __getitem__(self, key): return super(CaseInsensitiveDict, self).__getitem__(key.lower()) def __setitem__(self, key, value): return super(CaseInsensitiveDict, self).__setitem__(key.lower(), value)