Ë
    F^(hu	  ã                  óŠ   — d dl mZ d dlZd dlZd dlmZ  G d„ dej                  «      Z G d„ de«      Z G d„ d	e«      Z	dd
„Z
y)é    )ÚannotationsN)Úmake_path_posixc                  óF   — e Zd ZdZej
                  dd„«       Zdd„Zdd„Zy)	ÚAbstractCacheMapperzUAbstract super-class for mappers from remote URLs to local cached
    basenames.
    c                 ó   — y ©N© ©ÚselfÚpaths     úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fsspec/implementations/cache_mapper.pyÚ__call__zAbstractCacheMapper.__call__   s   € Ø*-ó    c                ó,   — t        |t        | «      «      S r   )Ú
isinstanceÚtype)r   Úothers     r   Ú__eq__zAbstractCacheMapper.__eq__   s   € ô ˜%¤ d£Ó,Ð,r   c                ó*   — t        t        | «      «      S r   )Úhashr   )r   s    r   Ú__hash__zAbstractCacheMapper.__hash__   s   € ô ”D˜“JÓÐr   N©r   ÚstrÚreturnr   ©r   Úobjectr   Úbool©r   Úint)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚabcÚabstractmethodr   r   r   r	   r   r   r   r   	   s'   „ ñð 	×ÑÚ-ó Ø-ó-ô
 r   r   c                  óB   ‡ — e Zd ZdZddd„Zdd„Zd	ˆ fd„Zd
ˆ fd„Zˆ xZS )ÚBasenameCacheMapperzóCache 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                ó@   — |dk  rt        d«      ‚|| _        d| _        y )Nr   z>BasenameCacheMapper requires zero or positive directory_levelsz_@_)Ú
ValueErrorÚdirectory_levelsÚ
_separator)r   r*   s     r   Ú__init__zBasenameCacheMapper.__init__$   s-   € Ø˜aÒÜØPóð ð !1ˆÔð  ˆ�r   c                ó˜   — t        |«      }|j                  d| j                  dz   «      ^}}|r| j                  j	                  |«      S |S )Nú/é   )r   Úrsplitr*   r+   Újoin)r   r   ÚprefixÚbitss       r   r   zBasenameCacheMapper.__call__.   sH   € Ü˜tÓ$ˆØŸ™ C¨×)>Ñ)>ÀÑ)BÓCˆˆ�ÙØ—?‘?×'Ñ'¨Ó-Ð-àˆMr   c                óX   •— t         ‰| �  |«      xr | j                  |j                  k(  S r   )Úsuperr   r*   )r   r   Ú	__class__s     €r   r   zBasenameCacheMapper.__eq__6   s(   ø€ Ü‰w‰~˜eÓ$ÒX¨×)>Ñ)>À%×BXÑBXÑ)XÐXr   c                óL   •— t         ‰| �  «       t        | j                  «      z  S r   )r5   r   r   r*   )r   r6   s    €r   r   zBasenameCacheMapper.__hash__9   s!   ø€ Ü‰wÑÓ!¤D¨×)>Ñ)>Ó$?Ñ?Ð?r   )r   )r*   r   r   r   r   )	r    r!   r"   r#   r,   r   r   r   Ú__classcell__)r6   s   @r   r'   r'      s$   ø„ ñô óõY÷@ñ @r   r'   c                  ó   — e Zd ZdZdd„Zy)ÚHashCacheMapperz0Cache mapper that uses a hash of the remote URL.c                ód   — t        j                  |j                  «       «      j                  «       S r   )ÚhashlibÚsha256ÚencodeÚ	hexdigestr
   s     r   r   zHashCacheMapper.__call__@   s    € Ü�~‰~˜dŸk™k›mÓ,×6Ñ6Ó8Ð8r   Nr   )r    r!   r"   r#   r   r	   r   r   r:   r:   =   s
   „ Ù:ô9r   r:   c                ó.   — | r
t        «       S t        «       S )zŒFactory method to create cache mapper for backward compatibility with
    ``CachingFileSystem`` constructor using ``same_names`` kwarg.
    )r'   r:   )Ú
same_namess    r   Úcreate_cache_mapperrB   D   s   € ñ Ü"Ó$Ð$äÓ Ð r   )rA   r   r   r   )Ú
__future__r   r$   r<   Úfsspec.implementations.localr   ÚABCr   r'   r:   rB   r	   r   r   ú<module>rF      sC   ðÝ "ã 
Û å 8ô ˜#Ÿ'™'ô  ô&@Ð-ô @ôB9Ð)ô 9ô!r   