File: //lib/python3/dist-packages/PIL/__pycache__/ImageSequence.cpython-38.pyc
U
g�
^" � @ s G d d� d�Z ddd�ZdS )c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�Iteratora-
This class implements an iterator object that can be used to loop
over an image sequence.
You can use the ``[]`` operator to access elements by index. This operator
will raise an :py:exc:`IndexError` if you try to access a nonexistent
frame.
:param im: An image object.
c C s, t |d�std��|| _t| jdd�| _d S )N�seekzim must have seek methodZ
_min_frame� )�hasattr�AttributeError�im�getattr�position)�selfr � r
�3/usr/lib/python3/dist-packages/PIL/ImageSequence.py�__init__ s
zIterator.__init__c C s2 z| j �|� | j W S tk
r, t�Y nX d S �N)r r �EOFError�
IndexError)r Zixr
r
r �__getitem__% s
zIterator.__getitem__c C s | S r
r
�r r
r
r �__iter__, s zIterator.__iter__c C sB z$| j �| j� | jd7 _| j W S tk
r< t�Y nX d S )N� )r r r r �
StopIterationr r
r
r �__next__/ s zIterator.__next__N)�__name__�
__module__�__qualname__�__doc__r r r r r
r
r
r r s
r Nc s` t | t�s| g} g }| D ],}|�� }|dd� t|�D �7 }|�|� q� r\� fdd�|D �S |S )a
Applies a given function to all frames in an image or a list of images.
The frames are returned as a list of separate images.
:param im: An image, or a list of images.
:param func: The function to apply to all of the image frames.
:returns: A list of images.
c S s g | ]}|� � �qS r
)�copy)�.0Zim_framer
r
r �
<listcomp>H s zall_frames.<locals>.<listcomp>c s g | ]}� |��qS r
r
)r r ��funcr
r r K s )�
isinstance�list�tellr r )r r ZimsZ
imSequenceZcurrentr
r r �
all_frames8 s
r"