
ืษ^  ใ            	   @   sU   d  d l  m Z Gd d   d e  Z y d  d l m Z Wn e Z Yn Xe Z d S)้    )ฺOrderedDictc                   s   e  Z d  Z d Z d   f d d  Z   f d d   Z   f d d   Z   f d	 d
   Z   f d d   Z   f d d   Z	 d d   Z
 d d   Z   S)ฺLRUDictManualu   ไธไธชๆๅจๅฎ็ฐ็LRUDict้    c                s   t    j   | |  _ d  S)N)ฺsuperฺ__init__ฺmaxsize)ฺselfฺsize)ฺ	__class__ฉ ๚$/var/www/zmirror/zmirror/lru_dict.pyr      s    zLRUDictManual.__init__c          	      s2   t    j |  } y |  j |  Wn Yn X| S)N)r   ฺ__getitem__ฺmove_to_end)r   ฺkeyฺvalue)r
   r   r   r      s    zLRUDictManual.__getitem__c                sO   t  |   |  j k r% |  j d d  | |  k r8 |  | =t   j | |  d  S)NฺlastF)ฺlenr   ฺpopitemr   ฺ__setitem__)r   r   r   )r
   r   r   r      s
    zLRUDictManual.__setitem__c                s   t  t t  t   j      S)N)ฺlistฺreversedr   ฺkeys)r   )r
   r   r   r      s    zLRUDictManual.keysc                s   t  t t  t   j      S)N)r   r   r   ฺvalues)r   )r
   r   r   r       s    zLRUDictManual.valuesc                s   t  t t  t   j      S)N)r   r   r   ฺitems)r   )r
   r   r   r   #   s    zLRUDictManual.itemsc             C   s
   t  |   S)N)r   )r   r   r   r   ฺget_size&   s    zLRUDictManual.get_sizec             C   s   | |  _  d  S)N)r   )r   r	   r   r   r   ฺset_size)   s    zLRUDictManual.set_size)ฺ__name__ฺ
__module__ฺ__qualname__ฺ__doc__r   r   r   r   r   r   r   r   r   r   )r
   r   r      s   	r   )ฺLRUN)ฺcollectionsr   r   Zlrur    ฺLRUDictr   r   r   r   ฺ<module>   s   (