관리-도구
편집 파일: newnext.cpython-311.pyc
� �܋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