[kernel] r9394 - people/waldi/dkt/lib/dkt/support
Bastian Blank
waldi at alioth.debian.org
Tue Aug 28 17:49:08 UTC 2007
Author: waldi
Date: Tue Aug 28 17:49:08 2007
New Revision: 9394
Log:
lib/dkt/support: Add.
Added:
people/waldi/dkt/lib/dkt/support/
people/waldi/dkt/lib/dkt/support/__init__.py
people/waldi/dkt/lib/dkt/support/ordered_dict.py
Added: people/waldi/dkt/lib/dkt/support/__init__.py
==============================================================================
Added: people/waldi/dkt/lib/dkt/support/ordered_dict.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/support/ordered_dict.py Tue Aug 28 17:49:08 2007
@@ -0,0 +1,43 @@
+class OrderedDict(object):
+ __slots__ = '_data', '_keys'
+
+ def __init__(self, d = {}):
+ self._data = d.copy()
+ self._keys = d.keys()
+
+ def __delitem__(self, key):
+ self._data.__delitem__(key)
+ self._keys.remove(key)
+
+ def __setitem__(self, key, value):
+ self._data.__setitem__(key, value)
+ if key not in self._keys:
+ self._keys.append(key)
+
+ def clear(self):
+ self._data.clear()
+ self._keys = []
+
+ def items(self):
+ return list(self.iteritems())
+
+ def iteritems(self):
+ for k in self._keys:
+ yield k, self._data[k]
+
+ def iterkeys(self):
+ for k in self._keys:
+ yield k
+
+ def itervalues(self):
+ for k in self._keys:
+ yield self._data[k]
+
+ def keys(self):
+ return self._keys[:]
+
+ def values(self):
+ return list(self.itervalue())
+
+ __iter__ = iterkeys
+
More information about the Kernel-svn-changes
mailing list