
    çgR	                     :    d dl mZ d dlmZ  G d de          ZdS )    )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    J/var/www/html/ai-engine/env/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}	|	||<   |r&t          |
                                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	   c                     | d         S )Nr&   r   )_s    r   <lambda>z.AbstractArchiveFileSystem.ls.<locals>.<lambda>F   s
    qy r   )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   ss   N((** 	' 	'DAqAaxxxxQ''*t{{3''''a  

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