WeakKeyDictionary.has_key(): If the key being tested is not weakly
referencable (weakref.ref() raises TypeError), return 0 instead of
propogating the TypeError.
This closes SF bug #478536; bugfix candidate.
diff --git a/Lib/weakref.py b/Lib/weakref.py
index 39ec330..967458d 100644
--- a/Lib/weakref.py
+++ b/Lib/weakref.py
@@ -179,7 +179,11 @@
return self.data.get(ref(key),default)
def has_key(self, key):
- return self.data.has_key(ref(key))
+ try:
+ wr = ref(key)
+ except TypeError:
+ return 0
+ return self.data.has_key(wr)
def items(self):
L = []