
0c@_%  ใ               @   sF   d  Z  d d l m Z Gd d   d e  Z Gd d   d e  Z d S)zb
The cache object API for implementing caches. The default is a thread
safe in-memory dictionary.
้    )ฺLockc               @   s@   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 S)
ฺ	BaseCachec             C   s   t     d  S)N)ฺNotImplementedError)ฺselfฺkeyฉ r   ๚=/tmp/pip-build-jynh7p1z/pip/pip/_vendor/cachecontrol/cache.pyฺget
   s    zBaseCache.getc             C   s   t     d  S)N)r   )r   r   ฺvaluer   r   r   ฺset   s    zBaseCache.setc             C   s   t     d  S)N)r   )r   r   r   r   r   ฺdelete   s    zBaseCache.deletec             C   s   d  S)Nr   )r   r   r   r   ฺclose   s    zBaseCache.closeN)ฺ__name__ฺ
__module__ฺ__qualname__r	   r   r   r   r   r   r   r   r      s   r   c               @   sC   e  Z d  Z d d d  Z d d   Z d d   Z d d	   Z d S)
ฺ	DictCacheNc             C   s   t    |  _ | p i  |  _ d  S)N)r   ฺlockฺdata)r   ฺ	init_dictr   r   r   ฺ__init__   s    zDictCache.__init__c             C   s   |  j  j | d   S)N)r   r	   )r   r   r   r   r   r	      s    zDictCache.getc          
   C   s+   |  j   |  j j | | i  Wd  QRXd  S)N)r   r   ฺupdate)r   r   r
   r   r   r   r       s    
zDictCache.setc          	   C   s4   |  j  $ | |  j k r) |  j j |  Wd  QRXd  S)N)r   r   ฺpop)r   r   r   r   r   r   $   s    
zDictCache.delete)r   r   r   r   r	   r   r   r   r   r   r   r      s   r   N)ฺ__doc__ฺ	threadingr   ฺobjectr   r   r   r   r   r   ฺ<module>   s   