a
    i=icC  ã                   @   s   d dl Z G dd„ dƒZdS )é    Nc                   @   sP   e Zd ZdZdd„ Zdd„ Zejfdd„Zdd	„ Z	ddd„Z
dd„ Zdd„ ZdS )ÚContainerIOzm
    A file object that provides read access to a part of an existing
    file (for example a TAR file).
    c                 C   s(   || _ d| _|| _|| _| 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.
        r   N)ÚfhÚposÚoffsetÚlengthÚseek)ÚselfÚfiler   r   © r
   ú`/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/PIL/ContainerIO.pyÚ__init__   s
    zContainerIO.__init__c                 C   s   dS )NFr
   ©r   r
   r
   r   Úisatty,   s    zContainerIO.isattyc                 C   s`   |dkr| j | | _ n|dkr,| j| | _ n|| _ tdt| 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   ÚtellB   s    zContainerIO.tellr   c                 C   sT   |rt || j| j ƒ}n| j| j }|s<d| jjv r8dS dS | 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.
        Úbó    Ú )r   r   r   r   r   Úread)r   Únr
   r
   r   r   J   s    zContainerIO.readc                 C   sP   d| j jv rdnd}d| j jv r$dnd}|  d¡}|s8qL|| }||kr(qLq(|S )zJ
        Read a line of text.

        :returns: An 8-bit string.
        r   r   r   ó   
Ú
r   )r   r   r   )r   ÚsZnewline_characterÚcr
   r
   r   Úreadline[   s    
zContainerIO.readlinec                 C   s"   g }|   ¡ }|sq| |¡ q|S )zZ
        Read multiple lines of text.

        :returns: A list of 8-bit strings.
        )r   Úappend)r   Úlinesr   r
   r
   r   Ú	readlinesl   s    zContainerIO.readlinesN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚioÚSEEK_SETr   r   r   r   r!   r
   r
   r
   r   r      s   
r   )r&   r   r
   r
   r
   r   Ú<module>   s   