diff options
Diffstat (limited to 'blist-stopiteration.patch')
-rw-r--r-- | blist-stopiteration.patch | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/blist-stopiteration.patch b/blist-stopiteration.patch new file mode 100644 index 0000000..198bef4 --- /dev/null +++ b/blist-stopiteration.patch @@ -0,0 +1,36 @@ +From: Andrej Shadura <andrew.shadura@collabora.co.uk> +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 <andrew.shadura@collabora.co.uk> + +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): |