
    gR	                     2    d dl mZ d dlmZ  G d de      Zy)    )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    C/var/www/openai/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   s\     u:?5L38954DLL&5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                 R   | 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}	|	||<    |r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       PDAq aPs   r!   )r"   r#   r	   c                     | d   S )Nr"   r-   )_s    r   <lambda>z.AbstractArchiveFileSystem.ls.<locals>.<lambda>F   s    qyr   )key)r$   r&   itemsrstriprsplitallzipsplitstripsortedvalues)
r   r   detailr(   r   pfrootppathouts
             r   lszAbstractArchiveFileSystem.ls1   s   NN((*DAqAaxxxQ'*t{{3''a 

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