Re@s~ddlZddlZddlZddlmZddlmZddlmZddl m Z GdddeZ dS) N) HTTPAdapter)CacheController) DictCache)CallbackFileWrapperc seZdZddhZddddddfddZdfddZd dfd d Zfd d ZS)CacheControlAdapterPUTDELETENTc s}tt|j|||dkr.tn||_||_|pId|_|pXt} | |jd|d||_dS)NGET cache_etags serializer)r ) superr__init__rcache heuristiccacheable_methodsr controller) selfrr controller_classr rrargskwcontroller_factory) __class__/builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/cachecontrol/adapter.pyrs   zCacheControlAdapter.__init__c s|p |j}|j|kry|jj|}Wntjk rQd}YnX|rn|j||ddS|jj|jj |t t |j ||}|S)z Send a request. Use the request information to see if it exists in the cache and cache the response if we need to and can. N from_cacheT) rmethodrcached_requestzliberrorbuild_responseheadersupdateconditional_headersr rsend)rrequestrr cacheablecached_responseresp)rrrr$$s zCacheControlAdapter.sendFc s|p |j}| r!|j|kr!|jr@|jj|}|jdkr|jj||}||k rvd}|jdd|j|}n|jdkr|jj ||nct |j t j |jj |||_ |jr!|jfdd}tj|||_tt|j||}|j|jkr||jr||jj|j} |jj| ||_|S)z Build a response by making a request or using the cache. This will end up calling send and returning a potentially cached response i0Tdecode_contentFi-cs'|jdkr#|jjdS)Nr) chunk_left_fp_close)r)super_update_chunk_lengthrr_update_chunk_lengthnsz@CacheControlAdapter.build_response.._update_chunk_length)rrrapplystatusrupdate_cached_responseread release_conncache_responserr+ functoolspartialchunkedr.types MethodTyper rr invalidating_methodsok cache_urlurlrdeleter) rr%responserrr&r'r.r(r<)r)r-rr 9s:          z"CacheControlAdapter.build_responsecs$|jjtt|jdS)N)rcloser r)r)rrrr@s zCacheControlAdapter.close)__name__ __module__ __qualname__r:rr$r r@rr)rrr s  Ir) r8r5rZpip._vendor.requests.adaptersrrrrr filewrapperrrrrrrs