3
`¢JZ…
  ã               @   s   G d d„ de ƒZdS )c               @   sH   e Zd Zdd„ Zdd„ Zddd„Zdd	„ Zdd
d„Zdd„ Zdd„ Z	dS )ÚContainerIOc             C   s(   || _ d| _|| _|| _| j j|ƒ dS )z­
        Create file object.

        :param file: Existing file.
        :param offset: Start of region, in bytes.
        :param length: Size of region, in bytes.
        é    N)ÚfhÚposÚoffsetÚlengthÚseek)ÚselfÚfiler   r   © r
   ú1/usr/lib/python3/dist-packages/PIL/ContainerIO.pyÚ__init__   s
    zContainerIO.__init__c             C   s   dS )Nr   r
   )r   r
   r
   r   Úisatty)   s    zContainerIO.isattyr   c             C   s`   |dkr| j | | _ n|dkr,| j| | _ n|| _ tdt| j | jƒƒ| _ | jj| j| j  ƒ dS )a  
        Move file pointer.

        :param offset: Offset in bytes.
        :param mode: Starting position. Use 0 for beginning of region, 1
           for current offset, and 2 for end of region.  You cannot move
           the pointer outside the defined region.
        é   é   r   N)r   r   ÚmaxÚminr   r   r   )r   r   Úmoder
   r
   r   r   ,   s    	zContainerIO.seekc             C   s   | j S )ze
        Get current file pointer.

        :returns: Offset from start of region, in bytes.
        )r   )r   r
   r
   r   Útell?   s    zContainerIO.tellc             C   sD   |rt || j| j ƒ}n| j| j }|s,dS | j| | _| jj|ƒS )z¥
        Read data.

        :param n: Number of bytes to read. If omitted or zero,
            read until end of region.
        :returns: An 8-bit string.
        Ú )r   r   r   r   Úread)r   Únr
   r
   r   r   G   s    zContainerIO.readc             C   s0   d}x&| j dƒ}|sP || }|dkrP qW |S )zJ
        Read a line of text.

        :returns: An 8-bit string.
        r   r   Ú
)r   )r   ÚsÚcr
   r
   r   ÚreadlineX   s    
zContainerIO.readlinec             C   s&   g }x| j ƒ }|sP |j|ƒ qW |S )zZ
        Read multiple lines of text.

        :returns: A list of 8-bit strings.
        )r   Úappend)r   Úlr   r
   r
   r   Ú	readlinesh   s    zContainerIO.readlinesN)r   )r   )
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r
   r
   r
   r   r      s   

r   N)Úobjectr   r
   r
   r
   r   Ú<module>   s    