summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-05-22 20:25:41 (GMT)
committerBenjamin Peterson <benjamin@python.org>2013-05-22 20:25:41 (GMT)
commit1cf48b4adc0589dd52d123ddb6e5976c40ed2da5 (patch)
treed5b3b9740a690f1130f907f90520110d73f75317
parent54f70923a3a50971e726b62e63250ec05df21be4 (diff)
downloadcpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.zip
cpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.tar.gz
cpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.tar.bz2
implement missing inequality on WeakSet
-rw-r--r--Lib/_weakrefset.py6
-rw-r--r--Lib/test/test_weakset.py6
-rw-r--r--Misc/NEWS2
3 files changed, 14 insertions, 0 deletions
diff --git a/Lib/_weakrefset.py b/Lib/_weakrefset.py
index 43f9a6e..990c3a6 100644
--- a/Lib/_weakrefset.py
+++ b/Lib/_weakrefset.py
@@ -171,6 +171,12 @@ class WeakSet(object):
return NotImplemented
return self.data == set(ref(item) for item in other)
+ def __ne__(self, other):
+ opposite = self.__eq__(other)
+ if opposite is NotImplemented:
+ return NotImplemented
+ return not opposite
+
def symmetric_difference(self, other):
newset = self.copy()
newset.symmetric_difference_update(other)
diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py
index d9e091e..fb9e8d7 100644
--- a/Lib/test/test_weakset.py
+++ b/Lib/test/test_weakset.py
@@ -351,6 +351,12 @@ class TestWeakSet(unittest.TestCase):
self.assertFalse(self.s == tuple(self.items))
self.assertFalse(self.s == 1)
+ def test_ne(self):
+ self.assertTrue(self.s != set(self.items))
+ s1 = WeakSet()
+ s2 = WeakSet()
+ self.assertFalse(s1 != s2)
+
def test_weak_destroy_while_iterating(self):
# Issue #7105: iterators shouldn't crash when a key is implicitly removed
# Create new items to be sure no-one else holds a reference
diff --git a/Misc/NEWS b/Misc/NEWS
index 391ecc5..7a72030 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,8 @@ Core and Builtins
Library
-------
+- Implement inequality on weakref.WeakSet.
+
- Issue #17981: Closed socket on error in SysLogHandler.
- Issue #17754: Make ctypes.util.find_library() independent of the locale.