Commit df7a65ac authored by Claude Paroz's avatar Claude Paroz
Browse files

Replaced 'next' testing by collections.Iterator testing.

The new construct is also Python 3 compatible (where 'next' has
been renamed to '__next__').
parent d5c7f9ef
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
import collections
import copy
import datetime
import decimal
@@ -436,7 +437,7 @@ class Field(object):
        return bound_field_class(self, fieldmapping, original)

    def _get_choices(self):
        if hasattr(self._choices, 'next'):
        if isinstance(self._choices, collections.Iterator):
            choices, self._choices = tee(self._choices)
            return choices
        else:
+2 −1
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ Code to manage the creation and SQL rendering of 'where' constraints.

from __future__ import absolute_import

import collections
import datetime
from itertools import repeat

@@ -49,7 +50,7 @@ class WhereNode(tree.Node):
            return

        obj, lookup_type, value = data
        if hasattr(value, '__iter__') and hasattr(value, 'next'):
        if isinstance(value, collections.Iterator):
            # Consume any generators immediately, so that we can determine
            # emptiness and transform any non-empty values correctly.
            value = list(value)