Ë
    F^(h�
  ã                   ó:   — d dl Z d dlmZ d dlmZ  G d„ de«      Zy)é    N)ÚMutableMapping)Ú	lru_cachec                   óN   — e Zd ZdZ	 	 	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zy)ÚDirCachea–  
    Caching of directory listings, in a structure like::

        {"path0": [
            {"name": "path0/file0",
             "size": 123,
             "type": "file",
             ...
            },
            {"name": "path0/file1",
            },
            ...
            ],
         "path1": [...]
        }

    Parameters to this class control listing expiry or indeed turn
    caching off
    Nc                 óˆ   ‡ — i ‰ _         i ‰ _        |r t        |dz   «      ˆ fd„«      ‰ _        |‰ _        |‰ _        |‰ _        y)a  

        Parameters
        ----------
        use_listings_cache: bool
            If False, this cache never returns items, but always reports KeyError,
            and setting items has no effect
        listings_expiry_time: int or float (optional)
            Time in seconds that a listing is considered valid. If None,
            listings do not expire.
        max_paths: int (optional)
            The number of most recent listings that are considered valid; 'recent'
            refers to when the entry was set.
        é   c                 ó<   •— ‰j                   j                  | d «      S ©N)Ú_cacheÚpop)ÚkeyÚselfs    €úM/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fsspec/dircache.pyú<lambda>z#DirCache.__init__.<locals>.<lambda>3   s   ø€ ¸4¿;¹;¿?¹?È3ÐPTÓ;U€ ó    N)r   Ú_timesr   Ú_qÚuse_listings_cacheÚlistings_expiry_timeÚ	max_paths)r   r   r   r   Úkwargss   `    r   Ú__init__zDirCache.__init__   sE   ø€ ð* ˆŒØˆŒÙØ.”i 	¨A¡Ó.Ó/UÓVˆDŒGØ"4ˆÔØ$8ˆÔ!Ø"ˆ�r   c                 ó
  — | j                   �L| j                  j                  |d«      t        j                  «       z
  | j                    k  r| j                  |= | j
                  r| j                  |«       | j                  |   S )Nr   )r   r   ÚgetÚtimer   r   r   ©r   Úitems     r   Ú__getitem__zDirCache.__getitem__8   sf   € Ø×$Ñ$Ð0Ø�{‰{�‰˜t QÓ'¬$¯)©)«+Ñ5¸×9RÑ9RÐ8RÒRØ—K‘K Ð%Ø�>Š>Ø�G‰G�DŒMØ�{‰{˜4Ñ Ð r   c                 ó8   — | j                   j                  «        y r
   )r   Úclear©r   s    r   r    zDirCache.clear@   s   € Ø�‰×ÑÕr   c                 ó,   — t        | j                  «      S r
   )Úlenr   r!   s    r   Ú__len__zDirCache.__len__C   s   € Ü�4—;‘;ÓÐr   c                 ó.   — 	 | |    y# t         $ r Y yw xY w)NTF)ÚKeyErrorr   s     r   Ú__contains__zDirCache.__contains__F   s#   € ð	Ø�ŠJØøÜò 	Ùð	ús   ‚ ˆ	“c                 óÒ   — | j                   sy | j                  r| j                  |«       || j                  |<   | j                  �"t        j
                  «       | j                  |<   y y r
   )r   r   r   r   r   r   r   )r   r   Úvalues      r   Ú__setitem__zDirCache.__setitem__M   sS   € Ø×&Ò&ØØ�>Š>Ø�G‰G�CŒLØ ˆ�‰�CÑØ×$Ñ$Ð0Ü#Ÿy™y›{ˆD�K‰K˜Òð 1r   c                 ó   — | j                   |= y r
   )r   )r   r   s     r   Ú__delitem__zDirCache.__delitem__V   s   € Ø�K‰K˜Ñr   c                 óD   ‡ — t        ‰ j                  «      }ˆ fd„|D «       S )Nc              3   ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wr
   © )Ú.0Úkr   s     €r   ú	<genexpr>z$DirCache.__iter__.<locals>.<genexpr>\   s   øè ø€ Ò0�a a¨4¢i”Ñ0ùs   ƒ	�)Úlistr   )r   Úentriess   ` r   Ú__iter__zDirCache.__iter__Y   s   ø€ Ü�t—{‘{Ó#ˆã0˜7Ô0Ð0r   c                 óT   — t         | j                  | j                  | j                  ffS r
   )r   r   r   r   r!   s    r   Ú
__reduce__zDirCache.__reduce__^   s)   € äØ×$Ñ$ d×&?Ñ&?ÀÇÁÐPð
ð 	
r   )TNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    r$   r'   r*   r,   r5   r7   r/   r   r   r   r      s?   „ ñð,  Ø!Øó	#ò:!òò òò+òò1ó

r   r   )r   Úcollections.abcr   Ú	functoolsr   r   r/   r   r   ú<module>r>      s   ðÛ Ý *Ý ô\
ˆ~õ \
r   