diff options
author | Benjamin Peterson <benjamin@python.org> | 2013-05-22 20:25:41 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2013-05-22 20:25:41 (GMT) |
commit | 1cf48b4adc0589dd52d123ddb6e5976c40ed2da5 (patch) | |
tree | d5b3b9740a690f1130f907f90520110d73f75317 | |
parent | 54f70923a3a50971e726b62e63250ec05df21be4 (diff) | |
download | cpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.zip cpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.tar.gz cpython-1cf48b4adc0589dd52d123ddb6e5976c40ed2da5.tar.bz2 |
implement missing inequality on WeakSet
-rw-r--r-- | Lib/_weakrefset.py | 6 | ||||
-rw-r--r-- | Lib/test/test_weakset.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
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 @@ -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. |