ó
    Ð]j�
  ã                   ó:   • S SK r S SKJr  S SKJr   " S S\5      rg)é    N)ÚMutableMapping)Ú	lru_cachec                   óX   • \ rS rSrSr   SS jrS rS rS rS r	S	 r
S
 rS rS rSrg)ÚDirCacheé   aV  
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                 ó”   ^ • 0 T l         0 T l        U(       a  [        US-   5      " U 4S j5      T l        UT l        UT l        UT l        g)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                 ó<   >• TR                   R                  U S 5      $ ©N)Ú_cacheÚpop)ÚkeyÚselfs    €ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/fsspec/dircache.pyÚ<lambda>Ú#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__ÚDirCache.__init__   sC   ø€ ð* ˆŒØˆŒÞÜ 	¨A¡Ô.Ô/UÓVˆDŒGØ"4ˆÔØ$8ˆÔ!Ø"ˆ�r   c                 ó  • U R                   bN  U R                  R                  US5      [        R                  " 5       -
  U R                   * :  a  U R                  U	 U R
                  (       a  U R                  U5        U R                  U   $ )Nr   )r   r   ÚgetÚtimer   r   r   ©r   Úitems     r   Ú__getitem__ÚDirCache.__getitem__8   sf   € Ø×$Ñ$Ñ0Ø�{‰{�‰˜t QÓ'¬$¯)ª)«+Ñ5¸×9RÑ9RÐ8RÓRØ—K‘K Ð%Ø�>�>Ø�G‰G�DŒMØ�{‰{˜4Ñ Ð r   c                 ó8   • U R                   R                  5         g r   )r   Úclear©r   s    r   r$   ÚDirCache.clear@   s   € Ø�‰×ÑÕr   c                 ó,   • [        U R                  5      $ r   )Úlenr   r%   s    r   Ú__len__ÚDirCache.__len__C   s   € Ü�4—;‘;ÓÐr   c                 ó.   •  X     g! [          a     gf = f)NTF)ÚKeyErrorr   s     r   Ú__contains__ÚDirCache.__contains__F   s!   € ð	ØŠJØøÜó 	Ùð	ús   ‚ ‡
“c                 óè   • U R                   (       d  g U R                  (       a  U R                  U5        X R                  U'   U R                  b#  [
        R
                  " 5       U R                  U'   g g r   )r   r   r   r   r   r   r   )r   r   Úvalues      r   Ú__setitem__ÚDirCache.__setitem__M   sQ   € Ø×&×&ØØ�>�>Ø�G‰G�CŒLØ �‰�CÑØ×$Ñ$Ñ0Ü#Ÿyšy›{ˆD�K‰K˜Òð 1r   c                 ó   • U R                   U	 g r   )r   )r   r   s     r   Ú__delitem__ÚDirCache.__delitem__V   s   € Ø�K‰K˜Ñr   c                 óF   ^ • [        T R                  5      nU 4S jU 5       $ )Nc              3   ó6   >#   • U  H  oT;   d  M
  Uv •  M     g 7fr   © )Ú.0Úkr   s     €r   Ú	<genexpr>Ú$DirCache.__iter__.<locals>.<genexpr>\   s   øé € Ð0š7�a¨4¡i—‘š7ùs   ƒ	�	)Úlistr   )r   Úentriess   ` r   Ú__iter__ÚDirCache.__iter__Y   s   ø€ Ü�t—{‘{Ó#ˆä0™7Ó0Ð0r   c                 óT   • [         U R                  U R                  U R                  44$ r   )r   r   r   r   r%   s    r   Ú
__reduce__ÚDirCache.__reduce__^   s)   € äØ×$Ñ$ d×&?Ñ&?ÀÇÁÐPð
ð 	
r   )r   r   r   r   r   r   )TNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r!   r$   r)   r-   r1   r4   r?   rB   Ú__static_attributes__r8   r   r   r   r      s?   † ñð,  Ø!Øô	#ò:!òò òò+òò1õ

r   r   )r   Úcollections.abcr   Ú	functoolsr   r   r8   r   r   Ú<module>rL      s   ðÛ Ý *Ý ô\
ˆ~õ \
r   