U ʗRe@sDdZddlmZGdddeZGdddeZGdddeZd S) zb The cache object API for implementing caches. The default is a thread safe in-memory dictionary. )Lockc@s.eZdZddZd ddZddZdd ZdS) BaseCachecCs tdSNNotImplementedErrorselfkeyr /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/cachecontrol/cache.pygetsz BaseCache.getNcCs tdSrrrr valueexpiresr r r setsz BaseCache.setcCs tdSrrrr r r deleteszBaseCache.deletecCsdSrr )rr r r closeszBaseCache.close)N)__name__ __module__ __qualname__r rrrr r r r r s rc@s0eZdZd ddZddZd ddZdd ZdS) DictCacheNcCst|_|pi|_dSr)rlockdata)r init_dictr r r __init__szDictCache.__init__cCs|j|dSr)rr rr r r r !sz DictCache.getc Cs&|j|j||iW5QRXdSr)rrupdater r r r r$sz DictCache.setc Cs,|j||jkr|j|W5QRXdSr)rrpoprr r r r(s zDictCache.delete)N)N)rrrrr rrr r r r rs  rc@s eZdZdZddZddZdS)SeparateBodyBaseCacheag In this variant, the body is not stored mixed in with the metadata, but is passed in (as a bytes-like object) in a separate call to ``set_body()``. That is, the expected interaction pattern is:: cache.set(key, serialized_metadata) cache.set_body(key) Similarly, the body should be loaded separately via ``get_body()``. cCs tdSrr)rr bodyr r r set_body:szSeparateBodyBaseCache.set_bodycCs tdS)z6 Return the body as file-like object. Nrrr r r get_body=szSeparateBodyBaseCache.get_bodyN)rrr__doc__rr r r r r r.s rN)r! threadingrobjectrrrr r r r s