
    g0                    T    d dl mZ d dlZddlmZ  G d dej                  e         Zy)    )annotationsN   )ContainerIOc                  <     e Zd ZdZd fdZddZddZd	dZ xZS )
TarIOzHA file object that provides read access to a given member of a TAR file.c                
   t        |d      | _        	 | j                  j                  d      }t        |      dk7  rd}t	        |      |dd j                  d      }|j                  d      }|dk(  rd	}t	        |      |dkD  r|d| }t        |d
d d      }||k(  rn1| j                  j                  |dz   dz  t        j                         t        | 1  | j                  | j                  j                         |       y)zz
        Create file object.

        :param tarfile: Name of TAR file.
        :param file: Name of member file.
        rbi   zunexpected end of tar fileNd   zutf-8 r   zcannot find subfile|         i  i )openfhreadlenOSErrordecodefindintseekioSEEK_CURsuper__init__tell)	selftarfilefilesmsgnameisize	__class__s	           >/var/www/openai/venv/lib/python3.12/site-packages/PIL/TarIO.pyr   zTarIO.__init__   s     w%S!A1v}2cl"Tc7>>'*D		$AAv+cl"1uBQxqSz1%Dt|GGLL$*.<' , 	$'',,.$7    c                    | S N r   s    r&   	__enter__zTarIO.__enter__<   s    r'   c                $    | j                          y r)   )close)r   argss     r&   __exit__zTarIO.__exit__?   s    

r'   c                8    | j                   j                          y r)   )r   r.   r+   s    r&   r.   zTarIO.closeB   s    r'   )r   strr   r2   returnNone)r3   r   )r/   objectr3   r4   )r3   r4   )	__name__
__module____qualname____doc__r   r,   r0   r.   __classcell__)r%   s   @r&   r   r      s    R8Dr'   r   )
__future__r   r    r   bytesr   r*   r'   r&   <module>r>      s'     # 	 ,K##E* ,r'   