idjdZddlmZGddeZGddeZGddeZd S) zb The cache object API for implementing caches. The default is a thread safe in-memory dictionary. )Lockc(eZdZdZddZdZdZdS) BaseCachectNNotImplementedErrorselfkeys S/opt/cloudlinux/venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/cache.pygetz BaseCache.get!###Nctrrr r valueexpiress r setz BaseCache.setrrctrrr s r deletezBaseCache.deleterrcdSr)r s r closezBaseCache.closes rr)__name__ __module__ __qualname__rrrrrrr rr sU$$$$$$$$$$     rrc*eZdZddZdZddZdZdS) DictCacheNc>t|_|pi|_dSr)rlockdata)r init_dicts r __init__zDictCache.__init__sFF O rc8|j|dSr)r"rr s r rz DictCache.get!sy}}S$'''rc~|j5|j||iddddS#1swxYwYdSr)r!r"updaters r rz DictCache.set$s Y + + I  c5\ * * * + + + + + + + + + + + + + + + + + +s 266c|j5||jvr|j|ddddS#1swxYwYdSr)r!r"popr s r rzDictCache.delete(s Y # #di c""" # # # # # # # # # # # # # # # # # #s $9==r)rrrr$rrrrrr rrsZ$$$$(((++++#####rrceZdZdZdZdZdS)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()``. ctrr)r r bodys r set_bodyzSeparateBodyBaseCache.set_body:rrct)z6 Return the body as file-like object. rr s r get_bodyzSeparateBodyBaseCache.get_body=s"###rN)rrr__doc__r.r0rrr r+r+.s<  $$$$$$$$rr+N)r1 threadingrobjectrrr+rrr r4s           ##### ###&$$$$$I$$$$$r