3 �Pf�@s4dZddlmZGdd�de�ZGdd�de�ZdS)zb The cache object API for implementing caches. The default is a thread safe in-memory dictionary. �)�Lockc@s,eZdZdd�Zdd�Zdd�Zdd�Zd S) � BaseCachecCs t��dS)N)�NotImplemented)�self�key�r�/usr/lib/python3.6/cache.py�get sz BaseCache.getcCs t��dS)N)r)rr�valuerrr�set sz BaseCache.setcCs t��dS)N)r)rrrrr�deleteszBaseCache.deletecCsdS)Nr)rrrr�closeszBaseCache.closeN)�__name__� __module__� __qualname__r r r r rrrrrsrc@s.eZdZd dd�Zdd�Zdd�Zdd �ZdS) � DictCacheNcCst�|_|pi|_dS)N)r�lock�data)rZ init_dictrrr�__init__szDictCache.__init__cCs|jj|d�S)N)rr )rrrrrr sz DictCache.getc Cs&|j�|jj||i�WdQRXdS)N)rr�update)rrr rrrr sz DictCache.setc Cs,|j�||jkr|jj|�WdQRXdS)N)rr�pop)rrrrrr $s zDictCache.delete)N)rrrrr r r rrrrrs rN)�__doc__Z threadingr�objectrrrrrr�s