
    |;3hk	                     :    d dl Z d dlmZ d dlmZ  G d de      Zy)    N)AbstractFileSystem)tokenizec                   4    e Zd ZdZd ZeZd Zd Zd ZddZ	y)	AbstractArchiveFileSystema(  
    A generic superclass for implementing Archive-based filesystems.

    Currently, it is shared amongst
    :class:`~fsspec.implementations.zip.ZipFileSystem`,
    :class:`~fsspec.implementations.libarchive.LibArchiveFileSystem` and
    :class:`~fsspec.implementations.tar.TarFileSystem`.
    c                 L    dt        |       j                   dt        |        dS )Nz<Archive-like object z at >)type__name__id)selfs    N/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/fsspec/archive.py__str__z!AbstractArchiveFileSystem.__str__   s&    &tDz':':&;44zKK    c                 D    t        || j                  | j                        S N)r   foprotocol)r   paths     r   ukeyzAbstractArchiveFileSystem.ukey   s    dggt}}55r   c                     t        |      dk(  r
t               S |D ch c]  }| j                  |       c}| j                  hz
  }|| j	                  |      z  S c c}w )zReturns *all* directory names for each path in paths, including intermediate
        ones.

        Parameters
        ----------
        paths: Iterable of path strings
        r   )lenset_parentroot_marker_all_dirnames)r   pathsr   dirnamess       r   r   z'AbstractArchiveFileSystem._all_dirnames   sX     u:?5L3894DLL&9T=M=M<NN$,,X666 :s   Ac                    | j                          | j                  |      }|dv r| j                  rddddS || j                  v r| j                  |   S |dz   | j                  v r| j                  |dz      S t        |      )N>    /r   	directoryr   )namer	   sizer    )	_get_dirs_strip_protocol	dir_cacheFileNotFoundError)r   r   kwargss      r   infozAbstractArchiveFileSystem.info'   s    ##D)9Q??4>>!>>$''CZ4>>)>>$*--#D))r   c                 v   | j                          i }| j                  j                         D ]  \  }}|j                  d      }d|v r|j	                  dd      d   }nd}||j                  d      k(  r|||<   Mt        d t        |j                  d      dg|j                  d      j                  d      z         D              s|j                  d      j                  dd      d   }||vs|ddd}	|	||<    |r0t        |j                         t        j                  d      	      }	|	S t        |      S )
Nr       r   r   c              3   ,   K   | ]  \  }}||k(    y wr    ).0abs      r   	<genexpr>z/AbstractArchiveFileSystem.ls.<locals>.<genexpr>>   s       Aq as   r!   )r"   r#   r	   r"   )key)r$   r&   itemsrstriprsplitallzipsplitstripsortedvaluesoperator
itemgetter)
r   r   detailr(   r   pfrootppathouts
             r   lszAbstractArchiveFileSystem.ls3   s&   NN((* 	'DAqAaxxxQ'*t{{3''a 

3"8J8J38O1OP 
 ++C3A6%#(![IC#&E%L!	'" X-@-@-HICJ%= r   N)T)
r
   
__module____qualname____doc__r   __repr__r   r   r)   rD   r-   r   r   r   r      s(    L H67
*!r   r   )r<   fsspecr   fsspec.utilsr   r   r-   r   r   <module>rK      s     % !D! 2 D!r   