From: Andrej Shadura Date: Sun, 8 Jul 2018 09:00:16 +0200 Subject: Catch StopIteration in a generator and return instead, per PEP 479 Signed-off-by: Andrej Shadura Forwarded: https://github.com/DanielStutzbach/blist/pull/92 Bug-Debian: https://bugs.debian.org/902757 --- blist/_sortedlist.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/blist/_sortedlist.py b/blist/_sortedlist.py index b34f69e..1f77170 100644 --- a/blist/_sortedlist.py +++ b/blist/_sortedlist.py @@ -420,11 +420,14 @@ class _setmixin(object): def __iter__(self): it = super(_setmixin, self).__iter__() while True: - item = next(it) - n = len(self) - yield item - if n != len(self): - raise RuntimeError('Set changed size during iteration') + try: + item = next(it) + n = len(self) + yield item + if n != len(self): + raise RuntimeError('Set changed size during iteration') + except StopIteration: + return def safe_cmp(f): def g(self, other):