| Viewing file:  iterators.py (1.36 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
"""This module is designed to be used as follows::
 
 from future.builtins.iterators import *
 
 And then, for example::
 
 for i in range(10**15):
 pass
 
 for (a, b) in zip(range(10**15), range(-10**15, 0)):
 pass
 
 Note that this is standard Python 3 code, plus some imports that do
 nothing on Python 3.
 
 The iterators this brings in are::
 
 - ``range``
 - ``filter``
 - ``map``
 - ``zip``
 
 On Python 2, ``range`` is a pure-Python backport of Python 3's ``range``
 iterator with slicing support. The other iterators (``filter``, ``map``,
 ``zip``) are from the ``itertools`` module on Python 2. On Python 3 these
 are available in the module namespace but not exported for * imports via
 __all__ (zero no namespace pollution).
 
 Note that these are also available in the standard library
 ``future_builtins`` module on Python 2 -- but not Python 3, so using
 the standard library version is not portable, nor anywhere near complete.
 """
 
 from __future__ import division, absolute_import, print_function
 
 import itertools
 from future import utils
 
 if not utils.PY3:
 filter = itertools.ifilter
 map = itertools.imap
 from future.types import newrange as range
 zip = itertools.izip
 __all__ = ['filter', 'map', 'range', 'zip']
 else:
 import builtins
 filter = builtins.filter
 map = builtins.map
 range = builtins.range
 zip = builtins.zip
 __all__ = []
 
 |