
    if                        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dS )    )annotationsN)TYPE_CHECKINGAny
CollectionMapping)HTTPAdapter)	DictCache)PERMANENT_REDIRECT_STATUSESCacheController)CallbackFileWrapper)PreparedRequestResponse)HTTPResponse)	BaseCache)BaseHeuristic)
Serializerc                  n     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 )0CacheControlAdapter>   PUTPATCHDELETENTcacheBaseCache | Nonecache_etagsboolcontroller_classtype[CacheController] | None
serializerSerializer | None	heuristicBaseHeuristic | Nonecacheable_methodsCollection[str] | Noneargsr   kwreturnNonec                     t                      j        |i | |t                      n|| _        || _        |pd| _        |pt          }	 |	| j        ||          | _        d S )N)GET)r   r   )super__init__r	   r   r    r"   r   
controller)selfr   r   r   r   r    r"   r$   r%   controller_factory	__class__s             R/var/www/html/env/lib/python3.11/site-packages/pip/_vendor/cachecontrol/adapter.pyr+   zCacheControlAdapter.__init__   sy     	$%"%%%$)MY[[[u
"!2!>h-@,,JKJ
 
 
    Frequestr   streamtimeout7None | float | tuple[float, float] | tuple[float, None]verify
bool | strcert4None | bytes | str | tuple[bytes | str, bytes | str]proxiesMapping[str, str] | Noner   c                v   |p| j         }|j        |v r	 | j                            |          }	n# t          j        $ r d}	Y nw xY w|	r|                     ||	d          S |j                            | j        	                    |                     t                                          ||||||          }
|
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.
        NT)
from_cache)r"   methodr,   cached_requestzliberrorbuild_responseheadersupdateconditional_headersr*   send)r-   r2   r3   r4   r6   r8   r:   r"   	cacheablecached_responserespr/   s              r0   rF   zCacheControlAdapter.send2   s     &?)?	>Y&&'"&/"@"@"I"I: ' ' '"&' V**7OPT*UUU O""4?#F#Fw#O#OPPPww||GVWfdGLLs   0 AAresponser   r=   c                d  
 |p| j         }|s!|j        |v r| j        r| j                            |          }|j        dk    rN| j                            ||          }||urd}|                    d           |                                 |}nt          |j                  t          v r| j                            ||           nft          |j        t          j        | j        j        ||                    |_        |j        r'|j        
d
fd	}t%          j        ||          |_        t)                                          ||          }|j        | j        v rI|j        rB|j        J | j                            |j                  }	| j                            |	           ||_        |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_contentr-   r   r&   r'   c                h                  | j         dk    r| j                                         d S d S )Nr   )
chunk_left_fp_close)r-   super_update_chunk_lengths    r0   _update_chunk_lengthz@CacheControlAdapter.build_response.<locals>._update_chunk_length   s?    11333?a// HOO----- 0/r1   N)r-   r   r&   r'   )r"   r>   r    applystatusr,   update_cached_responsereadrelease_connintr
   cache_responser   rO   	functoolspartialchunkedrR   types
MethodTyper*   rB   invalidating_methodsokurl	cache_urlr   deleter=   )r-   r2   rJ   r=   r"   rG   rH   rR   rI   rb   rQ   r/   s             @r0   rB   z"CacheControlAdapter.build_responseP   s    &?)?	 2	gn	99 ~ :>//99 #%%
 #'/"H"HX# # #(22!%J U333%%'''* X_%%)DDD..wAAAA  3L%6     # 
080M-. . . . . .
 5:4D,h5 5H1 //BB >T666476;***11'+>>IJi((( %r1   c                z    | j                                          t                                                       d S )N)r   closer*   )r-   r/   s    r0   re   zCacheControlAdapter.close   s,    
r1   )NTNNNN)r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r   r%   r   r&   r'   )FNTNNN)r2   r   r3   r   r4   r5   r6   r7   r8   r9   r:   r;   r"   r#   r&   r   )FN)
r2   r   rJ   r   r=   r   r"   r#   r&   r   )r&   r'   )	__name__
__module____qualname__r_   r+   rF   rB   re   __classcell__)r/   s   @r0   r   r      s        555 #' 9=(,*.48
 
 
 
 
 
 
0 KO!GK,048      D !48M M M M M M M^         r1   r   )
__future__r   rZ   r]   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    r1   r0   <module>ru      sO   # " " " " "       : : : : : : : : : : : : 5 5 5 5 5 5 4 4 4 4 4 4 \ \ \ \ \ \ \ \ D D D D D D >>>>>>>>>000000888888AAAAAA======G G G G G+ G G G G Gr1   