� <��g� ��B�ddlZddlmZddlmZGd�de��ZdS)�N)�MutableMapping)� lru_cachec�P�eZdZdZ d d�Zd�Zd�Zd�Zd�Zd �Z d �Z d �Z d �Z dS)�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|dz���fd����_|�_|�_|�_dS)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 ��_/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fsspec/dircache.py�<lambda>z#DirCache.__init__.<locals>.<lambda>3s���4�;�?�?�3�PT�;U�;U��N)r �_timesr�_q�use_listings_cache�listings_expiry_time� max_paths)rrrr�kwargss` r�__init__zDirCache.__init__s^���*�� ��� � � W�.�i� �A� �.�.�/U�/U�/U�/U�V�V�D�G�"4���$8��!�"����rc���|j�A|j�|d��tj��z |j kr|j|=|jr|�|��|j|S)Nr)rr�get�timer rr�r�items r� __getitem__zDirCache.__getitem__8sg�� � $� 0��{���t�Q�'�'�$�)�+�+�5��9R�8R�R�R��K��%� �>� � �G�G�D�M�M�M��{�4� � rc�8�|j���dSr )r �clear�rs rr zDirCache.clear@s�� � �������rc�*�t|j��Sr )�lenr r!s r�__len__zDirCache.__len__Cs���4�;���rc�:� ||dS#t$rYdSwxYw)NTF)�KeyErrorrs r� __contains__zDirCache.__contains__Fs7�� � ��J�J��4��� � � ��5�5� ���s � � �c��|jsdS|jr|�|��||j|<|j�t j��|j|<dSdSr )rrrr rrr)rr �values r� __setitem__zDirCache.__setitem__Ms`���&� � �F� �>� � �G�G�C�L�L�L� �� �C�� � $� 0�#�y�{�{�D�K�� � � � 1� 0rc��|j|=dSr )r )rr s r� __delitem__zDirCache.__delitem__Vs�� �K�� � � rc�H��t�j��}�fd�|D��S)Nc3�$�K�|] }|�v�|V�� dSr �)�.0�krs �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__zDirCache.__iter__Ys,����t�{�#�#��0�0�0�0�7�0�0�0�0rc�8�t|j|j|jffSr )rrrrr!s r� __reduce__zDirCache.__reduce__^s!�� � � $�d�&?��� P� � r)TNN) �__name__� __module__� __qualname__�__doc__rrr r$r'r*r,r5r7r/rrrrs���������, �!�� #�#�#�#�:!�!�!���� � � ����+�+�+����1�1�1�  � � � � rr)r�collections.abcr� functoolsrrr/rr�<module>r>sp�� � � � �*�*�*�*�*�*�������\ �\ �\ �\ �\ �~�\ �\ �\ �\ �\ r
Memory