second commit
This commit is contained in:
52
env/lib/python3.11/site-packages/future/builtins/iterators.py
vendored
Normal file
52
env/lib/python3.11/site-packages/future/builtins/iterators.py
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
"""
|
||||
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__ = []
|
Reference in New Issue
Block a user