
    7Thu	                        S SK Jr  S SKrS SKrS SKJr   " S S\R                  5      r " S S\5      r " S S	\5      r	SS
 jr
g)    )annotationsN)make_path_posixc                  T    \ rS rSrSr\R                  SS j5       rS	S jrS
S jr	Sr
g)AbstractCacheMapper	   zMAbstract super-class for mappers from remote URLs to local cached
basenames.
c                    g N selfpaths     [/var/www/auris/envauris/lib/python3.13/site-packages/fsspec/implementations/cache_mapper.py__call__AbstractCacheMapper.__call__   s    *-    c                ,    [        U[        U 5      5      $ r	   )
isinstancetype)r   others     r   __eq__AbstractCacheMapper.__eq__   s     %d,,r   c                *    [        [        U 5      5      $ r	   )hashr   )r   s    r   __hash__AbstractCacheMapper.__hash__   s     DJr   r
   Nr   strreturnr   r   objectr   boolr   int)__name__
__module____qualname____firstlineno____doc__abcabstractmethodr   r   r   __static_attributes__r
   r   r   r   r   	   s'     	- --
 r   r   c                  X   ^  \ rS rSrSrSS	S jjrS
S jrSU 4S jjrSU 4S jjrSr	U =r
$ )BasenameCacheMapper   zCache mapper that uses the basename of the remote URL and a fixed number
of directory levels above this.

The default is zero directory levels, meaning different paths with the same
basename will have the same cached basename.
c                @    US:  a  [        S5      eXl        SU l        g )Nr   z>BasenameCacheMapper requires zero or positive directory_levelsz_@_)
ValueErrordirectory_levels
_separator)r   r1   s     r   __init__BasenameCacheMapper.__init__$   s+    aP  !1  r   c                    [        U5      nUR                  SU R                  S-   5      tp#U(       a  U R                  R	                  U5      $ U$ )N/   )r   rsplitr1   r2   join)r   r   prefixbitss       r   r   BasenameCacheMapper.__call__.   sF    t$C)>)>)BC??''--Mr   c                b   > [         TU ]  U5      =(       a    U R                  UR                  :H  $ r	   )superr   r1   )r   r   	__class__s     r   r   BasenameCacheMapper.__eq__6   s(    w~e$X)>)>%BXBX)XXr   c                L   > [         TU ]  5       [        U R                  5      -  $ r	   )r>   r   r   r1   )r   r?   s    r   r   BasenameCacheMapper.__hash__9   s!    w!D)>)>$???r   )r2   r1   )r   )r1   r#   r   r   r"   )r$   r%   r&   r'   r(   r3   r   r   r   r+   __classcell__)r?   s   @r   r-   r-      s$     Y@ @r   r-   c                  "    \ rS rSrSrSS jrSrg)HashCacheMapper=   z0Cache mapper that uses a hash of the remote URL.c                f    [         R                  " UR                  5       5      R                  5       $ r	   )hashlibsha256encode	hexdigestr   s     r   r   HashCacheMapper.__call__@   s     ~~dkkm,6688r   r
   Nr   )r$   r%   r&   r'   r(   r   r+   r
   r   r   rE   rE   =   s
    :9r   rE   c                8    U (       a
  [        5       $ [        5       $ )zFactory method to create cache mapper for backward compatibility with
``CachingFileSystem`` constructor using ``same_names`` kwarg.
)r-   rE   )
same_namess    r   create_cache_mapperrO   D   s     "$$  r   )rN   r!   r   r   )
__future__r   r)   rH   fsspec.implementations.localr   ABCr   r-   rE   rO   r
   r   r   <module>rS      sC    " 
  8 #''  &@- @B9) 9!r   