diff options
author | Georg Brandl <georg@python.org> | 2008-05-18 07:46:13 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-05-18 07:46:13 (GMT) |
commit | bf93b0470affd720a603805eb00c917a9bc39cc9 (patch) | |
tree | 30cc457b9b52da94bbb3a0d8967689e2857e8f05 | |
parent | e624d17409e2d2b29db48752a7004525402bf023 (diff) | |
download | cpython-bf93b0470affd720a603805eb00c917a9bc39cc9.zip cpython-bf93b0470affd720a603805eb00c917a9bc39cc9.tar.gz cpython-bf93b0470affd720a603805eb00c917a9bc39cc9.tar.bz2 |
Fix two issues in the weak set implementation.
-rw-r--r-- | Lib/_weakrefset.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Lib/_weakrefset.py b/Lib/_weakrefset.py index e56ac04..a6827e8 100644 --- a/Lib/_weakrefset.py +++ b/Lib/_weakrefset.py @@ -41,7 +41,10 @@ class WeakSet: def pop(self): while True: - itemref = self.data.pop() + try: + itemref = self.data.pop() + except KeyError: + raise KeyError('pop from empty WeakSet') item = itemref() if item is not None: return item @@ -107,5 +110,5 @@ class WeakSet: __ixor__ = symmetric_difference_update def union(self, other): - self._apply_mutate(other, self.data.union) + return self._apply(other, self.data.union) __or__ = union |