##// END OF EJS Templates
propagate iopub to clients
propagate iopub to clients

File last commit:

r3598:6f48516f
r3602:8554e339
Show More
util.py
35 lines | 952 B | text/x-python | PythonLexer
"""some generic utilities"""
class ReverseDict(dict):
"""simple double-keyed subset of dict methods."""
def __init__(self, *args, **kwargs):
dict.__init__(self, *args, **kwargs)
self._reverse = dict()
for key, value in self.iteritems():
self._reverse[value] = key
def __getitem__(self, key):
try:
return dict.__getitem__(self, key)
except KeyError:
return self._reverse[key]
def __setitem__(self, key, value):
if key in self._reverse:
raise KeyError("Can't have key %r on both sides!"%key)
dict.__setitem__(self, key, value)
self._reverse[value] = key
def pop(self, key):
value = dict.pop(self, key)
self.d1.pop(value)
return value
def get(self, key, default=None):
try:
return self[key]
except KeyError:
return default