[docs]classIRCDict(KeyTransformingDict):""" A dictionary of names whose keys are case-insensitive according to the IRC RFC rules. >>> d = IRCDict({'[This]': 'that'}, A='foo') The dict maintains the original case: >>> '[This]' in ''.join(d.keys()) True But the keys can be referenced with a different case >>> d['a'] == 'foo' True >>> d['{this}'] == 'that' True >>> d['{THIS}'] == 'that' True >>> '{thiS]' in d True This should work for operations like delete and pop as well. >>> d.pop('A') == 'foo' True >>> del d['{This}'] >>> len(d) 0 """