a
    [f                     @   sN   d dl mZ d dlmZmZmZ edZedZG dd deeef eZdS )    )OrderedDict)DictGenericTypeVarCacheKey
CacheValuec                       sT   e Zd ZdZedd fddZeeddddZe	eef eed	d
dZ
  ZS )LRUCachez
    A dictionary-like container that stores a given maximum items.

    If an additional item is added when the LRUCache is full, the least
    recently used key is discarded to make room for the new item.

    N)
cache_sizereturnc                    s   || _ tt|   d S )N)r	   superr   __init__)selfr	   	__class__ mC:\Users\91910\OneDrive\Desktop\vts_admin_rebuild-master\vts\Lib\site-packages\pip/_vendor/rich/_lru_cache.pyr      s    zLRUCache.__init__)keyvaluer
   c                 C   s4   || vr"t | | jkr"| jdd t| || dS )z7Store a new views, potentially discarding an old value.F)lastN)lenr	   popitemr   __setitem__r   r   r   r   r   r   r      s    zLRUCache.__setitem__)r   r   r
   c                 C   s*   t | |}t | | t | || |S )z-Gets the item, but also makes it most recent.)r   __getitem____delitem__r   r   r   r   r   r      s    zLRUCache.__getitem__)__name__
__module____qualname____doc__intr   r   r   r   r   r   __classcell__r   r   r   r   r   	   s   r   N)	collectionsr   typingr   r   r   r   r   r   r   r   r   r   <module>   s   