
    Yhk	                     B    d dl Z d dlmZ d dlmZ  G d de          ZdS )    N)AbstractFileSystem)tokenizec                   6    e Zd ZdZd ZeZd Zd Zd Zd	dZ	dS )
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                 R    dt          |           j         dt          |            dS )Nz<Archive-like object z at >)type__name__id)selfs    `/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/fsspec/archive.py__str__z!AbstractArchiveFileSystem.__str__   s*    KtDzz':KK4KKKK    c                 8    t          || j        | j                  S N)r   foprotocol)r   paths     r   ukeyzAbstractArchiveFileSystem.ukey   s    dgt}555r   c                      t          |          dk    rt                      S  fd|D              j        hz
  }|                     |          z  S )zReturns *all* directory names for each path in paths, including intermediate
        ones.

        Parameters
        ----------
        paths: Iterable of path strings
        r   c                 :    h | ]}                     |          S  )_parent).0r   r   s     r   	<setcomp>z:AbstractArchiveFileSystem._all_dirnames.<locals>.<setcomp>$   s%    9994DLL&&999r   )lensetroot_marker_all_dirnames)r   pathsdirnamess   `  r   r   z'AbstractArchiveFileSystem._all_dirnames   sZ     u::??55L99995999T=M<NN$,,X6666r   c                     |                                   |                     |          }|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   Tc                    |                                   i }| j                                        D ]\  }}|                    d          }d|v r|                    dd          d         }nd}||                    d          k    r|||<   \t          d t          |                    d          dg|                    d                              d          z             D                       r>|                    d                              dd          d         }||vr|ddd}	|	||<   |r7t          |
                                t          j        d          	          }	|	S t          |          S )
Nr$      r   r#   c              3   (   K   | ]\  }}||k    V  d S r   r   )r   abs      r   	<genexpr>z/AbstractArchiveFileSystem.ls.<locals>.<genexpr>>   s>        Aq a     r   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   sz   N((** 	' 	'DAqAaxxxxQ''*t{{3''''a  

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