Ë
    ^ãj'  ã                  óh   — d dl mZ d dlZd dlmZmZ dZerd dlmZ d dlm	Z	m
Z
  G d„ dee   «      Zy)	é    )ÚannotationsN)ÚIOÚAnyStrF)ÚIterable)ÚNoReturnÚSelfc                  óÐ   — e Zd ZdZdd„Zdd„Zdd„Zej                  fdd„Z	dd„Z
dd„Zddd„Zddd	„Zddd
„Zdd„Zdd„Zdd„Zd d!d„Zd"d„Zd#d„Zd"d„Zd$d„Zdd„Zd%d„Zd%d„Zy)&ÚContainerIOzm
    A file object that provides read access to a part of an existing
    file (for example a TAR file).
    c                ór   — || _         d| _        || _        || _        | j                   j	                  |«       y)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   s       úQ/var/www/html/metafoliadorv2/venv/lib/python3.12/site-packages/PIL/ContainerIO.pyÚ__init__zContainerIO.__init__!   s0   € ð #ˆŒØˆŒØˆŒØˆŒØ�‰�‰�VÕó    c                 ó   — y©NF© ©r   s    r   ÚisattyzContainerIO.isatty2   ó   € Ør   c                 ó   — y©NTr   r   s    r   ÚseekablezContainerIO.seekable5   ó   € Ør   c                óR  — |dk(  r| j                   |z   | _         n!|dk(  r| j                  |z   | _         n|| _         t        dt        | j                   | j                  «      «      | _         | j                  j                  | j                  | j                   z   «       | j                   S )aK  
        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.
        :returns: Offset from start of region, in bytes.
        é   é   r   )r   r   ÚmaxÚminr   r   r   )r   r   Úmodes      r   r   zContainerIO.seek8   s|   € ð �1Š9Ø—x‘x &Ñ(ˆD�HØ�QŠYØ—{‘{ VÑ+ˆD�HàˆDŒHä�qœ#˜dŸh™h¨¯©Ó4Ó5ˆŒØ�‰�‰�T—[‘[ 4§8¡8Ñ+Ô,Ø�x‰xˆr   c                ó   — | j                   S )ze
        Get current file pointer.

        :returns: Offset from start of region, in bytes.
        )r   r   s    r   ÚtellzContainerIO.tellM   s   € ð �x‰xˆr   c                 ó   — yr   r   r   s    r   ÚreadablezContainerIO.readableU   r   r   c                ó&  — |dkD  r$t        || j                  | j                  z
  «      }n| j                  | j                  z
  }|dk  rd| j                  j                  v rdS dS | j                  |z   | _        | j                  j                  |«      S )z¯
        Read data.

        :param n: Number of bytes to read. If omitted, zero or negative,
            read until end of region.
        :returns: An 8-bit string.
        r   Úbr   Ú )r$   r   r   r   r%   Úread)r   Úns     r   r-   zContainerIO.readX   sx   € ð ˆqŠ5Ü�A�t—{‘{ T§X¡XÑ-Ó.‰Aà—‘˜dŸh™hÑ&ˆAØ�Š6Ø §¡§¡Ñ-�3Ð5°2Ð5Ø—8‘8˜a‘<ˆŒØ�w‰w�|‰|˜A‹Ðr   c                óØ   — d| j                   j                  v rdnd}d| j                   j                  v rdnd}	 | j                  d«      }|s	 |S ||z   }||k(  st        |«      |k(  r	 |S Œ2)z·
        Read a line of text.

        :param n: Number of bytes to read. If omitted, zero or negative,
            read until end of line.
        :returns: An 8-bit string.
        r+   r   r,   ó   
ú
r!   )r   r%   r-   Úlen)r   r.   ÚsÚnewline_characterÚcs        r   ÚreadlinezContainerIO.readlinei   sy   € ð  $§'¡'§,¡,Ñ.‘C°BˆØ%(¨D¯G©G¯L©LÑ%8™E¸dÐØØ—	‘	˜!“ˆAÙØð ˆð �A‘ˆAØÐ%Ò%¬¨Q«°1ªØØˆð r   c                óx   — g }	 | j                  «       }|s	 |S |j                  |«       t        |«      |k(  r	 |S Œ8)zÏ
        Read multiple lines of text.

        :param n: Number of lines to read. If omitted, zero, negative or None,
            read until end of region.
        :returns: A list of 8-bit strings.
        )r6   Úappendr2   )r   r.   Úlinesr3   s       r   Ú	readlineszContainerIO.readlines|   sI   € ð ˆØØ—‘“ˆAÙØð ˆð �L‰L˜ŒOÜ�5‹z˜QŠØØˆð r   c                 ó   — yr   r   r   s    r   ÚwritablezContainerIO.writableŽ   r   r   c                ó   — t        «       ‚©N©ÚNotImplementedError)r   r+   s     r   ÚwritezContainerIO.write‘   ó   € Ü!Ó#Ð#r   c                ó   — t        «       ‚r>   r?   )r   r9   s     r   Ú
writelineszContainerIO.writelines”   rB   r   Nc                ó   — t        «       ‚r>   r?   )r   Úsizes     r   ÚtruncatezContainerIO.truncate—   rB   r   c                ó   — | S r>   r   r   s    r   Ú	__enter__zContainerIO.__enter__š   ó   € Øˆr   c                ó$   — | j                  «        y r>   )Úclose)r   Úargss     r   Ú__exit__zContainerIO.__exit__�   s   € Ø�
‰
�r   c                ó   — | S r>   r   r   s    r   Ú__iter__zContainerIO.__iter__    rJ   r   c                óD   — | j                  «       }|sd}t        |«      ‚|S )Nzend of region)r6   ÚStopIteration)r   ÚlineÚmsgs      r   Ú__next__zContainerIO.__next__£   s%   € Ø�}‰}‹ˆÙØ!ˆCÜ Ó$Ð$Øˆr   c                ó6   — | j                   j                  «       S r>   )r   Úfilenor   s    r   rW   zContainerIO.filenoª   s   € Ø�w‰w�~‰~ÓÐr   c                ó8   — | j                   j                  «        y r>   )r   Úflushr   s    r   rY   zContainerIO.flush­   ó   € Ø�‰�‰�r   c                ó8   — | j                   j                  «        y r>   )r   rL   r   s    r   rL   zContainerIO.close°   rZ   r   )r   z
IO[AnyStr]r   Úintr   r\   ÚreturnÚNone)r]   Úbool)r   r\   r%   r\   r]   r\   )r]   r\   )éÿÿÿÿ)r.   r\   r]   r   )r.   ú
int | Noner]   zlist[AnyStr])r+   r   r]   r   )r9   zIterable[AnyStr]r]   r   r>   )rF   ra   r]   r\   )r]   r   )rM   Úobjectr]   r^   )r]   r   )r]   r^   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚioÚSEEK_SETr   r'   r)   r-   r6   r:   r<   rA   rD   rG   rI   rN   rP   rU   rW   rY   rL   r   r   r   r
   r
      st   „ ñó
ó"óð -/¯K©Kô ó*óôô"ô&ó$ó$ó$ô$óóóóó óôr   r
   )Ú
__future__r   rg   Útypingr   r   ÚTYPE_CHECKINGÚcollections.abcr   r   r   r
   r   r   r   ú<module>rm      s0   ðõ  #ã 	ß à€ÙÝ(ß%ôV�"�V‘*õ Vr   