Hacked By AnonymousFox
�
�܋f� � �2 � d Z eZ e� � Zefd�ZdgZdS )a�
This module provides a newnext() function in Python 2 that mimics the
behaviour of ``next()`` in Python 3, falling back to Python 2's behaviour for
compatibility if this fails.
``newnext(iterator)`` calls the iterator's ``__next__()`` method if it exists. If this
doesn't exist, it falls back to calling a ``next()`` method.
For example:
>>> class Odds(object):
... def __init__(self, start=1):
... self.value = start - 2
... def __next__(self): # note the Py3 interface
... self.value += 2
... return self.value
... def __iter__(self):
... return self
...
>>> iterator = Odds()
>>> next(iterator)
1
>>> next(iterator)
3
If you are defining your own custom iterator class as above, it is preferable
to explicitly decorate the class with the @implements_iterator decorator from
``future.utils`` as follows:
>>> @implements_iterator
... class Odds(object):
... # etc
... pass
This next() function is primarily for consuming iterators defined in Python 3
code elsewhere that we would like to run on Python 2 or 3.
c �4 � | � � � S # t $ rR | � � � cY S # t $ r- t d� | j j � � � � �w xY ww xY w# t $ r}|t u r|�|cY d}~S d}~ww xY w)z�
next(iterator[, default])
Return the next item from the iterator. If default is given and the iterator
is exhausted, it is returned instead of raising StopIteration.
z'{0}' object is not an iteratorN) �__next__�AttributeError�next� TypeError�format� __class__�__name__�
StopIteration� _SENTINEL)�iterator�default�es �h/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/future/builtins/newnext.py�newnextr + s� � �
� I��$�$�&�&�&��� I� I� I�
I��}�}���&�&�&��!�
I�
I�
I�� A� H� H�+3�+=�+F�!H� !H� I� I� I�
I���� I����� � � � ��i����G��N�N�N�N�N�N����� ���s@ � �
A3�8�A3�A6 �7A/�/A3�3A6 �6
B� B�B�Br N)�__doc__r �
_builtin_next�objectr r �__all__� � r �<module>r sF ��$� $�L �
��F�H�H� �'� � � � �6 �+���r
Hacked By AnonymousFox1.0, Coded By AnonymousFox