From 69ef72d51cec8864980d2a766c46ab831eec03af Mon Sep 17 00:00:00 2001 From: Mahmoud Hashemi Date: Fri, 10 Apr 2015 00:08:24 -0700 Subject: [PATCH] iterutils Python 3 compat (izip/xrange) --- boltons/iterutils.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/boltons/iterutils.py b/boltons/iterutils.py index 680c3b8..a542b91 100644 --- a/boltons/iterutils.py +++ b/boltons/iterutils.py @@ -9,10 +9,16 @@ returns an iterator (denoted by the ``*_iter`` naming pattern), and a shorter-named convenience form that returns a list. Some of the following are based on examples in itertools docs. """ -import itertools +import itertools from compat import basestring # TODO +try: + from itertools import izip +except ImportError: + # Python 3 + izip, xrange = zip, range + def is_iterable(obj): """Similar in nature to :func:`callable`, ``is_iterable`` returns @@ -235,8 +241,8 @@ def windowed_iter(src, size): for _ in xrange(i): next(t) except StopIteration: - return itertools.izip([]) - return itertools.izip(*tees) + return izip([]) + return izip(*tees) def bucketize(src, key=None):