
    eg                        d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ er d dlmZmZ d d	lmZ d d
lmZ d dlmZ d dlmZ  G d de      Zy)    )annotationsN)TYPE_CHECKINGAny
CollectionMapping)HTTPAdapter)	DictCache)PERMANENT_REDIRECT_STATUSESCacheController)CallbackFileWrapper)PreparedRequestResponse)HTTPResponse)	BaseCache)BaseHeuristic)
Serializerc                       e Zd Zh dZ	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fdZ	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 fdZ	 	 d
	 	 	 	 	 	 	 	 	 d fdZd fdZ xZS )CacheControlAdapter>   PUTPATCHDELETEc                    t        
|   |i | |
t               n|| _        || _        |xs d| _        |xs t        }	 |	| j                  ||      | _        y )N)GET)cache_etags
serializer)super__init__r	   cache	heuristiccacheable_methodsr   
controller)selfr   r   controller_classr   r   r    argskwcontroller_factory	__class__s             }/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.pyr   zCacheControlAdapter.__init__   s\     	$%"%$)MY[u
"!2!>h-@,JJKJ
    c                n   |xs | j                   }|j                  |v rf	 | j                  j                  |      }	|	r| j                  ||	d      S |j                  j                  | j                  j                  |             t        | -  ||||||      }
|
S # t        j
                  $ r d}	Y ww xY w)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.
        NT)
from_cache)r    methodr!   cached_requestzliberrorbuild_responseheadersupdateconditional_headersr   send)r"   requeststreamtimeoutverifycertproxiesr    	cacheablecached_responserespr'   s              r(   r4   zCacheControlAdapter.send2   s     &?)?)?	>>Y&'"&//"@"@"I **7OPT*UU OO""4??#F#Fw#OPw|GVWfdGL :: '"&'s   B B43B4c                  
 |xs | j                   }|sA|j                  |v r2| j                  r| j                  j                  |      }|j                  dk(  rG| j
                  j                  ||      }||urd}|j                  d       |j                          |}nt        |j                        t        v r| j
                  j                  ||       n}t        |j                  t        j                  | j
                  j                  ||            |_        |j                   r-|j"                  
d
fd}t%        j&                  ||      |_        t(        | U  ||      }|j                  | j,                  v rZ|j.                  rN|j0                  J | j
                  j3                  |j0                        }	| j4                  j7                  |	       ||_        |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
        i0  TF)decode_contentc                h             | j                   dk(  r| j                  j                          y y )Nr   )
chunk_left_fp_close)r"   super_update_chunk_lengths    r(   _update_chunk_lengthz@CacheControlAdapter.build_response.<locals>._update_chunk_length   s(    13??a/ HHOO- 0r)   )r"   r   returnNone)r    r,   r   applystatusr!   update_cached_responsereadrelease_connintr
   cache_responser   rB   	functoolspartialchunkedrE   types
MethodTyper   r0   invalidating_methodsokurl	cache_urlr   deleter+   )r"   r5   responser+   r    r;   r<   rE   r=   rW   rD   r'   s             @r(   r0   z"CacheControlAdapter.build_responseP   s    &?)?)?	gnn	9 ~~>>//9 #%
 #'//"H"HX# #(2!%J U3%%'* X__%)DD..wA  3LL%%66  ##080M0M-.
 5:4D4D,h5H1 /B >>T666477;;***11'++>IJJi( %r)   c                V    | j                   j                          t        |           y )N)r   closer   )r"   r'   s    r(   r[   zCacheControlAdapter.close   s    

r)   )NTNNNN)r   zBaseCache | Noner   boolr#   ztype[CacheController] | Noner   zSerializer | Noner   zBaseHeuristic | Noner    Collection[str] | Noner$   r   r%   r   rF   rG   )FNTNNN)r5   r   r6   r\   r7   z7None | float | tuple[float, float] | tuple[float, None]r8   z
bool | strr9   z4None | bytes | str | tuple[bytes | str, bytes | str]r:   zMapping[str, str] | Noner    r]   rF   r   )FN)
r5   r   rY   r   r+   r\   r    r]   rF   r   )rF   rG   )	__name__
__module____qualname__rT   r   r4   r0   r[   __classcell__)r'   s   @r(   r   r      s2   5 #' 9=(,*.48

 
 7	

 &
 (
 2
 
 
 

0 KO!GK,048   I	
  D * 2 
D !48M M M 	M
 2M 
M^ r)   r   )
__future__r   rO   rR   r.   typingr   r   r   r   pip._vendor.requests.adaptersr   pip._vendor.cachecontrol.cacher	   #pip._vendor.cachecontrol.controllerr
   r   $pip._vendor.cachecontrol.filewrapperr   pip._vendor.requestsr   r   pip._vendor.urllib3r   r   #pip._vendor.cachecontrol.heuristicsr   "pip._vendor.cachecontrol.serializer   r    r)   r(   <module>rm      sE    #    : : 5 4 \ D>08A=G+ Gr)   