+
    UBi                    ^    ^ RI Ht ^ RIt^ RIHt ^ RIHtHtHt  ! R R]],          4      t	R# )    )annotationsN)Iterable)IOAnyStrNoReturnc                  4   ] tR t^tRtR R ltR R ltR R lt]P                  3R R	 llt
R
 R ltR R ltR,R R lltR,R R lltR,R R lltR R ltR R ltR R ltR-R R lltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+tR# ).ContainerIOza
A file object that provides read access to a part of an existing
file (for example a TAR file).
c               (    V ^8  d   QhRRRRRRRR/# )   filez
IO[AnyStr]offsetintlengthreturnNone )formats   "4/usr/lib/python3.14/site-packages/PIL/ContainerIO.py__annotate__ContainerIO.__annotate__   s(      Z  c d     c                n    Wn         ^ V n        W n        W0n        V P                   P	                  V4       R# )z
Create file object.

:param file: Existing file.
:param offset: Start of region, in bytes.
:param length: Size of region, in bytes.
N)fhposr   r   seek)selfr   r   r   s   &&&&r   __init__ContainerIO.__init__   s*     #Vr   c                   V ^8  d   QhRR/# r   r   boolr   )r   s   "r   r   r   .   s       r   c                	    R # Fr   r   s   &r   isattyContainerIO.isatty.       r   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r   1         $ r   c                	    R # Tr   r$   s   &r   seekableContainerIO.seekable1       r   c               $    V ^8  d   QhRRRRRR/# )r   r   r   moder   r   )r   s   "r   r   r   4   s!      3 c C r   c                p   V^8X  d   V P                   V,           V n         M&V^8X  d   V P                  V,           V n         MWn         \        ^ \        V P                   V P                  4      4      V n         V P                  P                  V P                  V P                   ,           4       V P                   # )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.
:returns: Offset from start of region, in bytes.
)r   r   maxminr   r   r   )r   r   r0   s   &&&r   r   ContainerIO.seek4   sz     19xx&(DHQY{{V+DHHq#dhh45T[[488+,xxr   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r   I   s      c r   c                    V P                   # )zM
Get current file pointer.

:returns: Offset from start of region, in bytes.
)r   r$   s   &r   tellContainerIO.tellI   s     xxr   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r   Q   r)   r   c                	    R # r+   r   r$   s   &r   readableContainerIO.readableQ   r.   r   c                    V ^8  d   QhRRRR/# r   nr   r   r   r   )r   s   "r   r   r   T   s      c 6 r   c                J   V^ 8  d(   \        WP                  V P                  ,
          4      pMV P                  V P                  ,
          pV^ 8:  d    RV P                  P                  9   d   R# R# V P                  V,           V n        V P                  P                  V4      # )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.
br    )r3   r   r   r   r0   read)r   r@   s   &&r   rD   ContainerIO.readT   sv     q5A{{TXX-.Adhh&A6-352588a<ww||Ar   c                    V ^8  d   QhRRRR/# r?   r   )r   s   "r   r   r   e   s      # v r   c                    RV P                   P                  9   d   RMRpRV P                   P                  9   d   RMRp V P                  ^4      pV'       g    V# W$,           pWC8X  g   \        V4      V8X  g   K=   V# )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.
rB   r   rC      

)r   r0   rD   len)r   r@   snewline_charactercs   &&   r   readlineContainerIO.readlinee   so     $'',,.CB%(DGGLL%8Ed		!A  A%Q1r   c                    V ^8  d   QhRRRR/# )r   r@   
int | Noner   zlist[AnyStr]r   )r   s   "r   r   r   x   s      : | r   c                    . p V P                  4       pV'       g    V# VP                  V4       \        V4      V8X  g   K?   V# )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.
)rN   appendrJ   )r   r@   linesrK   s   &&  r   	readlinesContainerIO.readlinesx   sD     A  LLO5zQr   c                   V ^8  d   QhRR/# r    r   )r   s   "r   r   r      s      $ r   c                	    R # r#   r   r$   s   &r   writableContainerIO.writable   r'   r   c                    V ^8  d   QhRRRR/# )r   rB   r   r   r   r   )r   s   "r   r   r      s     $ $v $( $r   c                	    \        4       hNNotImplementedError)r   rB   s   &&r   writeContainerIO.write       !##r   c                    V ^8  d   QhRRRR/# )r   rT   zIterable[AnyStr]r   r   r   )r   s   "r   r   r      s     $ $ 0 $X $r   c                	    \        4       hr]   r^   )r   rT   s   &&r   
writelinesContainerIO.writelines   rb   r   Nc                    V ^8  d   QhRRRR/# )r   sizerQ   r   r   r   )r   s   "r   r   r      s     $ $Z $3 $r   c                	    \        4       hr]   r^   )r   rh   s   &&r   truncateContainerIO.truncate   rb   r   c                   V ^8  d   QhRR/# r   r   zContainerIO[AnyStr]r   )r   s   "r   r   r      s      . r   c                	    V # r]   r   r$   s   &r   	__enter__ContainerIO.__enter__       r   c                    V ^8  d   QhRRRR/# )r   argsobjectr   r   r   )r   s   "r   r   r      s      f  r   c                	&    V P                  4        R # r]   )close)r   rs   s   &*r   __exit__ContainerIO.__exit__   s    

r   c                   V ^8  d   QhRR/# rm   r   )r   s   "r   r   r      s      - r   c                	    V # r]   r   r$   s   &r   __iter__ContainerIO.__iter__   rq   r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r      s      & r   c                	P    V P                  4       pV'       g   R p\        V4      hV# )zend of region)rN   StopIteration)r   linemsgs   &  r   __next__ContainerIO.__next__   s%    }}!C$$r   c                   V ^8  d   QhRR/# r6   r   )r   s   "r   r   r      s          r   c                	6    V P                   P                  4       # r]   )r   filenor$   s   &r   r   ContainerIO.fileno   s    ww~~r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r            t r   c                	:    V P                   P                  4        R # r]   )r   flushr$   s   &r   r   ContainerIO.flush       r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      r   r   c                	:    V P                   P                  4        R # r]   )r   rv   r$   s   &r   rv   ContainerIO.close   r   r   )r   r   r   r   )r]   )__name__
__module____qualname____firstlineno____doc__r   r%   r,   ioSEEK_SETr   r8   r<   rD   rN   rU   rY   r`   re   rj   ro   rw   r{   r   r   r   rv   __static_attributes__r   r   r   r	   r	      sy    
" -/KK *"&$$$$  r   r	   )

__future__r   r   collections.abcr   typingr   r   r   r	   r   r   r   <module>r      s(     # 	 $ ' 'V"V* Vr   