U
    Z$d                     @   s*   d dl Z ddlmZ G dd dejZdS )    N   )ContainerIOc                       s8   e Zd ZdZ fddZdd Zdd Zdd	 Z  ZS )
TarIOzHA file object that provides read access to a given member of a TAR file.c                    s   t |d| _| jd}t|dkr0d}t||dd d}|d}|dkr`d	}t||dkrt|d| }t|d
d d}||krq| j|d d@ t	j
 qt | j| j | dS )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__ -/tmp/pip-unpacked-wheel-s9vr6rj9/PIL/TarIO.pyr      s"    
zTarIO.__init__c                 C   s   | S Nr#   r   r#   r#   r$   	__enter__<   s    zTarIO.__enter__c                 G   s   |    d S r%   )close)r   argsr#   r#   r$   __exit__?   s    zTarIO.__exit__c                 C   s   | j   d S r%   )r   r(   r&   r#   r#   r$   r(   B   s    zTarIO.close)	__name__
__module____qualname____doc__r   r'   r*   r(   __classcell__r#   r#   r!   r$   r      s
   #r   )r    r   r   r#   r#   r#   r$   <module>   s   