§
    dŠtj�
  ã                   óB   — d dl Z d dlmZ d dlmZ  G d„ de¦  «        ZdS )é    N)ÚMutableMapping)Ú	lru_cachec                   óP   — 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dS )Ú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
    TNc                 ó˜   ‡ — i ‰ _         i ‰ _        |r# t          |dz   ¦  «        ˆ fd„¦  «        ‰ _        |‰ _        |‰ _        |‰ _        dS )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                              | d ¦  «        S ©N)Ú_cacheÚpop)ÚkeyÚselfs    €úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/fsspec/dircache.pyú<lambda>z#DirCache.__init__.<locals>.<lambda>3   s   ø€ ¸4¼;¿?º?È3ÐPTÑ;UÔ;U€ ó    N)r   Ú_timesr   Ú_qÚuse_listings_cacheÚlistings_expiry_timeÚ	max_paths)r   r   r   r   Úkwargss   `    r   Ú__init__zDirCache.__init__   s^   ø€ ð* ˆŒØˆŒØð 	WØ.•i 	¨A¡Ñ.Ô.Ð/UÐ/UÐ/UÐ/UÑVÔVˆDŒGØ"4ˆÔØ$8ˆÔ!Ø"ˆŒˆˆr   c                 óä   — | j         �A| j                             |d¦  «        t          j        ¦   «         z
  | j          k     r| j        |= | j        r|                      |¦  «         | j        |         S )Nr   )r   r   ÚgetÚtimer   r   r   ©r   Úitems     r   Ú__getitem__zDirCache.__getitem__8   sg   € ØÔ$Ð0ØŒ{�Š˜t QÑ'Ô'­$¬)©+¬+Ñ5¸Ô9RÐ8RÒRÐRØ”K Ð%ØŒ>ð 	Ø�GŠG�D‰MŒMˆMØŒ{˜4Ô Ð r   c                 ó8   — | j                              ¦   «          d S 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                 ó:   — 	 | |          dS # t           $ r Y dS w xY w)NTF)ÚKeyErrorr   s     r   Ú__contains__zDirCache.__contains__F   s7   € ð	Ø�ŒJˆJØ�4øÝð 	ð 	ð 	Ø�5�5ð	øøøs   ‚ Œ
™c                 ó¬   — | j         sd S | j        r|                      |¦  «         || j        |<   | j        �t          j        ¦   «         | j        |<   d S d S r
   )r   r   r   r   r   r   r   )r   r   Úvalues      r   Ú__setitem__zDirCache.__setitem__M   s`   € ØÔ&ð 	ØˆFØŒ>ð 	Ø�GŠG�C‰LŒLˆLØ ˆŒ�CÑØÔ$Ð0Ý#œy™{œ{ˆDŒK˜ÑÐÐð 1Ð0r   c                 ó   — | j         |= d S r
   )r   )r   r   s     r   Ú__delitem__zDirCache.__delitem__V   s   € ØŒK˜ÐÐÐr   c                 óH   ‡ — t          ‰ j        ¦  «        }ˆ fd„|D ¦   «         S )Nc              3   ó$   •K  — | ]
}|‰v ¯|V — Œd S r
   © )Ú.0Úkr   s     €r   ú	<genexpr>z$DirCache.__iter__.<locals>.<genexpr>\   s'   øè è € Ð0Ð0�a a¨4 i i� i i i iÐ0Ð0r   )Úlistr   )r   Úentriess   ` r   Ú__iter__zDirCache.__iter__Y   s,   ø€ Ý�t”{Ñ#Ô#ˆà0Ð0Ð0Ð0˜7Ð0Ñ0Ô0Ð0r   c                 ó8   — 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ð 1ð 1ð

ð 
ð 
ð 
ð 
r   r   )r   Úcollections.abcr   Ú	functoolsr   r   r/   r   r   ú<module>r>      sp   ðØ €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð ð\
ð \
ð \
ð \
ð \
ˆ~ñ \
ô \
ð \
ð \
ð \
r   