aboutsummaryrefslogtreecommitdiff
path: root/blist-stopiteration.patch
diff options
context:
space:
mode:
Diffstat (limited to 'blist-stopiteration.patch')
-rw-r--r--blist-stopiteration.patch36
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):