summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNotSqrt <notsqrt@gmail.com>2017-01-04 09:45:53 +0100
committerNotSqrt <notsqrt@gmail.com>2017-01-04 09:45:53 +0100
commit9ffb61214cbb7b389cfb0bc2bcc6d0790f426672 (patch)
tree48473bccae7bc35813eb6dd3c2b7bcf88d26f34b
parent651f1b6c97af8b82945a65bb46de4e9f4faf2438 (diff)
downloadpsycopg2-9ffb61214cbb7b389cfb0bc2bcc6d0790f426672.tar.gz
Fix DeprecationWarning: generator '__iter__' raised StopIterationfix-iter-warning
Closes #498
-rw-r--r--lib/extras.py46
1 files changed, 26 insertions, 20 deletions
diff --git a/lib/extras.py b/lib/extras.py
index b59a2c7..c1d1567 100644
--- a/lib/extras.py
+++ b/lib/extras.py
@@ -106,18 +106,21 @@ class DictCursorBase(_cursor):
return res
def __iter__(self):
- if self._prefetch:
- res = super(DictCursorBase, self).__iter__()
- first = res.next()
- if self._query_executed:
- self._build_index()
- if not self._prefetch:
- res = super(DictCursorBase, self).__iter__()
- first = res.next()
-
- yield first
- while 1:
- yield res.next()
+ try:
+ if self._prefetch:
+ res = super(DictCursorBase, self).__iter__()
+ first = res.next()
+ if self._query_executed:
+ self._build_index()
+ if not self._prefetch:
+ res = super(DictCursorBase, self).__iter__()
+ first = res.next()
+
+ yield first
+ while 1:
+ yield res.next()
+ except StopIteration:
+ return
class DictConnection(_connection):
@@ -343,17 +346,20 @@ class NamedTupleCursor(_cursor):
return map(nt._make, ts)
def __iter__(self):
- it = super(NamedTupleCursor, self).__iter__()
- t = it.next()
+ try:
+ it = super(NamedTupleCursor, self).__iter__()
+ t = it.next()
- nt = self.Record
- if nt is None:
- nt = self.Record = self._make_nt()
+ nt = self.Record
+ if nt is None:
+ nt = self.Record = self._make_nt()
- yield nt._make(t)
+ yield nt._make(t)
- while 1:
- yield nt._make(it.next())
+ while 1:
+ yield nt._make(it.next())
+ except StopIteration:
+ return
try:
from collections import namedtuple