diff options
Diffstat (limited to 'giscanner/odict.py')
-rw-r--r-- | giscanner/odict.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/giscanner/odict.py b/giscanner/odict.py new file mode 100644 index 00000000..00d5a5bd --- /dev/null +++ b/giscanner/odict.py @@ -0,0 +1,24 @@ +# odict - an ordered dictionary + +from UserDict import DictMixin + + +class odict(DictMixin): + def __init__(self): + self._items = {} + self._keys = [] + + def __setitem__(self, key, value): + if key not in self._items: + self._keys.append(key) + self._items[key] = value + + def __getitem__(self, key): + return self._items[key] + + def __delitem__(self, key): + del self._items[key] + self._keys.remove(key) + + def keys(self): + return self._keys[:] |