
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
yb                 @   s   e  ZG d d dZdS )c               @   s^   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdddZdd Z	dd Z
dd Zdd ZdS )LRUCachec             C   s   i | _ g | _|| _|| _d S )N)_cache_lru	_capacity_dispose)selfZcapacityZdispose r    /usr/lib64/python3.6/lrucache.py__init__   s    zLRUCache.__init__c             C   sN   || j kstd| jj| x t| j| jkr>| | jd = q W || j |< d S )NzQUnexpected attempt to replace a cached item, without first deleting the old item.    )r   AssertionErrorr   appendlenr   )r   keyvaluer   r   r   __setitem__   s    zLRUCache.__setitem__c             C   s&   | j | }| jj| | jj| |S )N)r   r   remover   )r   r   r   r   r   r   __getitem__   s    
zLRUCache.__getitem__c             C   s&   | j j|}| j| | jj| d S )N)r   popr   r   r   )r   r   r   r   r   r   __delitem__   s    
zLRUCache.__delitem__c             C   s
   || j kS )N)r   )r   r   r   r   r   __contains__   s    zLRUCache.__contains__Nc             C   s6   | j j|t}|tkr|S | jj| | jj| |S )N)r   getsentinelr   r   r   )r   r   defaultr   r   r   r   r   "   s    zLRUCache.getc             C   s    || j kstd|| j |< d S )Nz1Unexpected attempt to update a non-existing item.)r   r   )r   r   r   r   r   r   upd*   s    zLRUCache.updc             C   s,   x| j j D ]}| j| qW | j j  d S )N)r   valuesr   clear)r   r   r   r   r   r   0   s    zLRUCache.clearc             C   s
   | j j S )N)r   items)r   r   r   r   r   5   s    zLRUCache.itemsc             C   s
   t | jS )N)r   r   )r   r   r   r   __len__8   s    zLRUCache.__len__)N)__name__
__module____qualname__r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   	
r   N)objectr   r   r   r   r   r   <module>   s   