Ë
    #täi  ã                   ó„   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ dddœZ	 e j                  d«      Z G d	„ d
e«      Zy)é    N)ÚAbstractArchiveFileSystem)Úcompr)Úinfer_compressionÚfileÚ	directory)ó   0ó   5Útarc                   óN   ‡ — e Zd ZdZdZdZdZ	 	 	 	 	 d	ˆ fd„	Zd„ Zd„ Z	d
d„Z
ˆ xZS )ÚTarFileSystemzzCompressed Tar archives as a file-system (read-only)

    Supports the following formats:
    tar.gz, tar.bz2, tar.xz
    Ú r
   Fc                 ó  •— t        ‰	| �  d
i |¤Ž |xs i }t        |t        «      r7t	        j
                  |fd|i|¤Ž| _        | j                  j                  «       }|€•d }	 t        |d«      r|j                  }nQt        |d«      r|j                  }n8t        |d«      r|j                  }nt        |d«      r|j                  «       d   }|�&t        |«      }t        j                  d|› d|› �«       |�t!        |   |«      }|| _        || _        t'        j(                  | j$                  ¬	«      | _        d | _        || _        d | _        | j3                  «        y # t        $ r"}t        j                  d|› �«       Y d }~Œ·d }~ww xY w)NÚprotocolÚoriginalÚpathÚnameÚinfoz:Unable to determine file name, not inferring compression: zInferred compression z from file name )Úfileobj© )ÚsuperÚ__init__Ú
isinstanceÚstrÚfsspecÚopenÚofÚhasattrr   r   r   r   Ú	ExceptionÚloggerÚwarningr   r   Ú_fo_refÚfoÚtarfileÚTarFiler
   Ú	dir_cacheÚindex_storeÚindexÚ_index)
Úselfr"   r&   Útarget_optionsÚtarget_protocolÚcompressionÚkwargsr   ÚexÚ	__class__s
            €úi/Volumes/fast/ai/experiments/MLX_z-image/.venv/lib/python3.12/site-packages/fsspec/implementations/tar.pyr   zTarFileSystem.__init__   su  ø€ ô 	‰ÑÑ"˜6Ò"Ø'Ò-¨2ˆä�bœ#ÔÜ—k‘k "ÑQ¨ÐQÀ.ÑQˆDŒGØ—‘—‘“ˆBð ÐØˆDð
ô
 ˜2˜zÔ*ØŸ;™;‘Dô ˜R Ô(ØŸ7™7‘Dô ˜R Ô(ØŸ7™7‘Dô ˜R Ô(ØŸ7™7›9 VÑ,�Dð ÐÜ/°Ó5�Ü—‘Ð3°K°=Ð@PÐQUÐPVÐWÔXàÐ"ô �{Ñ# BÓ'ˆBàˆŒØˆŒÜ—?‘?¨4¯7©7Ô3ˆŒØˆŒà&ˆÔØˆŒ
Ø�‰�øô+ ò Ü—‘ØPÐQSÐPTÐU÷ñ ûðús   Á#A*E Å	F	Å'FÆF	c                 óö   — i }| j                   D ]a  }|j                  «       }t        j                  |d   d«      |d<   |j                  «       d   j	                  d«      }||j
                  f||<   Œc || _        y )NÚtyper   r   Ú/)r
   Úget_infoÚtypemapÚgetÚrstripÚoffset_datar'   )r)   ÚoutÚtir   r   s        r0   r(   zTarFileSystem._index[   sn   € àˆØ—(”(ˆBØ—;‘;“=ˆDÜ"Ÿ;™; t¨F¡|°VÓ<ˆD�‰LØ—;‘;“= Ñ(×/Ñ/°Ó4ˆDØ˜rŸ~™~Ð.ˆC�ŠIð	 ð ˆ�
ó    c                 ó’  — | j                   �y | j                  | j                  j                  «       «      D �ci c]	  }||dddœ“Œ c}| _         | j                  j	                  «       D ]W  }|j                  «       }|d   j                  d«      |d<   t        j                  |d   d«      |d<   || j                   |d   <   ŒY y c c}w )Nr   r   )r   Úsizer2   r   r3   r2   r   )	r%   Ú_all_dirnamesr
   ÚgetnamesÚ
getmembersr4   r7   r5   r6   )r)   ÚdirnameÚmemberr   s       r0   Ú	_get_dirszTarFileSystem._get_dirsg   sÀ   € Ø�>‰>Ð%Øð
  ×-Ñ-¨d¯h©h×.?Ñ.?Ó.AÔBó
áB�ð ˜g¨q¸+ÑFÑFØBñ
ˆŒð —h‘h×)Ñ)Ö+ˆFØ—?‘?Ó$ˆDØ ™<×.Ñ.¨sÓ3ˆD�‰LÜ"Ÿ;™; t¨F¡|°VÓ<ˆD�‰LØ+/ˆD�N‰N˜4 ™<Ò(ñ	 ,ùò	
s   ¹Cc                 ó¢   — |dk7  rt        d«      ‚| j                  |   \  }}|d   dk7  rt        d«      ‚| j                  j                  |«      S )NÚrbz#Read-only filesystem implementationr2   r   zCan only handle regular files)Ú
ValueErrorr'   r
   Úextractfile)r)   r   Úmoder-   ÚdetailsÚoffsets         r0   Ú_openzTarFileSystem._openv   sT   € Ø�4Š<ÜÐBÓCÐCØŸ*™* TÑ*‰ˆ�Ø�6‰?˜fÒ$ÜÐ<Ó=Ð=Ø�x‰x×#Ñ# DÓ)Ð)r;   )r   NNNN)rE   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úroot_markerr   Úcachabler   r(   rC   rK   Ú__classcell__)r/   s   @r0   r   r      s@   ø„ ñð €KØ€HØ€Hð ØØØØõ@òD	ò0÷*r;   r   )Úloggingr#   r   Úfsspec.archiver   Úfsspec.compressionr   Úfsspec.utilsr   r5   Ú	getLoggerr   r   r   r;   r0   Ú<module>rX      sB   ðÛ Û ã Ý 4Ý $Ý *à˜{Ñ
+€à	ˆ×	Ñ	˜5Ó	!€ôn*Ð-õ n*r;   