Author: Alex Gaynor <[email protected]>
Branch: 
Changeset: r62572:44a31f735006
Date: 2013-03-20 13:37 -0700
http://bitbucket.org/pypy/pypy/changeset/44a31f735006/

Log:    Removed unused MultiWeakDict

diff --git a/rpython/tool/algo/multiweakdict.py 
b/rpython/tool/algo/multiweakdict.py
deleted file mode 100644
--- a/rpython/tool/algo/multiweakdict.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import weakref
-import UserDict
-
-
-class MultiWeakKeyDictionary(UserDict.DictMixin):
-
-    def __init__(self):
-        self._bylength = {}
-
-    def __getitem__(self, key):
-        key = (len(key),) + key
-        d = self._bylength
-        for step in key:
-            d = d[step]
-        return d
-
-    def __setitem__(self, key, value):
-        key = (len(key),) + key
-        d = self._bylength
-        for step in key[:-1]:
-            try:
-                d = d[step]
-            except KeyError:
-                d[step] = newd = weakref.WeakKeyDictionary()
-                d = newd
-        d[key[-1]] = value
-
-    def __delitem__(self, key):
-        key = (len(key),) + key
-        d = self._bylength
-        for step in key[:-1]:
-            d = d[step]
-        del d[key[-1]]
-
-    def keys(self):
-        result = []
-        def enumkeys(initialkey, d, result):
-            if len(initialkey) == length:
-                result.append(initialkey)
-            else:
-                for key, value in d.iteritems():
-                    enumkeys(initialkey + (key,), value, result)
-        for length, d in self._bylength.iteritems():
-            enumkeys((), d, result)
-        return result
diff --git a/rpython/tool/algo/test/test_multiweakdict.py 
b/rpython/tool/algo/test/test_multiweakdict.py
deleted file mode 100644
--- a/rpython/tool/algo/test/test_multiweakdict.py
+++ /dev/null
@@ -1,52 +0,0 @@
-import py, gc
-from rpython.tool.algo.multiweakdict import MultiWeakKeyDictionary
-
-
-class A(object):
-    pass
-
-
-def test_simple():
-    d = MultiWeakKeyDictionary()
-    a1 = A()
-    a2 = A()
-    a3 = A()
-    d[a1, a2] = 12
-    d[a1,] = 1
-    d[a2,] = 2
-    d[a2, a1] = 21
-    d[a2, a2] = 22
-    d[()] = 0
-    assert d[a1, a2] == 12
-    assert d[a1,] == 1
-    assert d[a2,] == 2
-    assert d[a2, a1] == 21
-    assert d[a2, a2] == 22
-    assert d[()] == 0
-    assert dict.fromkeys(d.keys()) == {(a1, a2): None,
-                                       (a1,): None,
-                                       (a2,): None,
-                                       (a2, a1): None,
-                                       (a2, a2): None,
-                                       (): None}
-    del d[a2,]
-    assert dict.fromkeys(d.keys()) == {(a1, a2): None,
-                                       (a1,): None,
-                                       (a2, a1): None,
-                                       (a2, a2): None,
-                                       (): None}
-    assert d[a1, a2] == 12
-    assert d[a1,] == 1
-    assert d[a2, a1] == 21
-    assert d[a2, a2] == 22
-    assert d[()] == 0
-    py.test.raises(KeyError, "d[a2,]")
-
-    del a1
-    locals()   # obscure fix for CPython -- make sure a1 is no longer in
-               # the cached f_locals of the frame
-    gc.collect()   # less obscure fix for other Python implementations
-    assert dict.fromkeys(d.keys()) == {(a2, a2): None,
-                                       (): None}
-    assert d[a2, a2] == 22
-    assert d[()] == 0
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to