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