File: //home/arjun/projects/env/lib/python3.10/site-packages/PIL/__pycache__/ContainerIO.cpython-310.pyc
o
weC � @ s d dl Z G dd� d�ZdS )� Nc @ sP e Zd ZdZdd� Zdd� Zejfdd�Zdd � Z ddd�Z
d
d� Zdd� ZdS )�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 �|� dS )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
�H/home/arjun/projects/env/lib/python3.10/site-packages/PIL/ContainerIO.py�__init__ s
zContainerIO.__init__c C s dS )NFr
�r r
r
r �isatty, s zContainerIO.isattyc C s` |dkr| j | | _ n|dkr| j| | _ n|| _ tdt| j | j��| _ | j�| j| j � dS )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 zContainerIO.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 zContainerIO.tellr c C sT |rt || j| j �}n| j| j }|sd| jjv rdS dS | 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 zContainerIO.readc C sV d| j jv rdnd}d| j jv rdnd} | �d�}|s |S || }||kr* |S q)zJ
Read a line of text.
:returns: An 8-bit string.
r r r �
�
Tr )r r r )r �s�newline_character�cr
r
r �readline[ s
��zContainerIO.readlinec C s$ g } | � � }|s |S |�|� q)zZ
Read multiple lines of text.
:returns: A list of 8-bit strings.
)r �append)r �linesr r
r
r � readlinesl s
��zContainerIO.readlinesN)r )
�__name__�
__module__�__qualname__�__doc__r r �io�SEEK_SETr r r r r"