3 Pf@s4dZddlmZGdddeZGdddeZdS)zb The cache object API for implementing caches. The default is a thread safe in-memory dictionary. )Lockc@s,eZdZddZddZddZddZd S) BaseCachecCs tdS)N)NotImplemented)selfkeyr/usr/lib/python3.6/cache.pyget sz BaseCache.getcCs tdS)N)r)rrvaluerrrset sz BaseCache.setcCs tdS)N)r)rrrrrdeleteszBaseCache.deletecCsdS)Nr)rrrrcloseszBaseCache.closeN)__name__ __module__ __qualname__r r r r rrrrrsrc@s.eZdZd ddZddZddZdd ZdS) DictCacheNcCst|_|pi|_dS)N)rlockdata)rZ init_dictrrr__init__szDictCache.__init__cCs|jj|dS)N)rr )rrrrrr sz DictCache.getc Cs&|j|jj||iWdQRXdS)N)rrupdate)rrr rrrr sz DictCache.setc Cs,|j||jkr|jj|WdQRXdS)N)rrpop)rrrrrr $s zDictCache.delete)N)rrrrr r r rrrrrs rN)__doc__Z threadingrobjectrrrrrrs