[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