
    .Ph[                        d dl mZ d dl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             T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/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.send3   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           
       
 |p| j         }|sJ|j        |v r@| j        r| j                            |          }|j        dk    rN| j                            ||          }||urd}|                    d           |                                 |}nt          |j                  t          v r| j                            ||           nt          |j        t          j        | j        j        |t!          j        |                              |_        |j        r>|j        j        
d
fd	}t          j        |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_content	weak_self#weakref.ReferenceType[HTTPResponse]r&   r'   c                     |             }|d S  |           |j         dk    r|j                                         d S d S )Nr   )
chunk_left_fp_close)rM   r-   super_update_chunk_lengths     r0   _update_chunk_lengthz@CacheControlAdapter.build_response.<locals>._update_chunk_length   sX      )y{{<"F11$777?a// HOO----- 0/r1   N)rM   rN   r&   r'   )r"   r>   r    applystatusr,   update_cached_responsereadrelease_connintr
   cache_responser   rQ   	functoolspartialweakrefrefchunkedr/   rT   r*   rB   invalidating_methodsokurl	cache_urlr   deleter=   )r-   r2   rJ   r=   r"   rG   rH   rT   rI   rd   rS   r/   s             @r0   rB   z"CacheControlAdapter.build_responseQ   s    &?)?	 8	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XAVAV     # 080B0W-	. 	. 	. 	. 	. 	. 5>4E,gk(.C.C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   rg   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__ra   r+   rF   rB   rg   __classcell__)r/   s   @r0   r   r      s        555 #' 9=(,*.48
 
 
 
 
 
 
0 KO!GK,048      D !48S S S S S S Sj         r1   r   )
__future__r   r\   typesr^   r@   typingr   r   r   r   requests.adaptersr   cachecontrol.cacher	   cachecontrol.controllerr
   r   cachecontrol.filewrapperr   requestsr   r   urllib3r   r   cachecontrol.heuristicsr   cachecontrol.serializer   r    r1   r0   <module>rx      sX   # " " " " "        : : : : : : : : : : : : ) ) ) ) ) ) ( ( ( ( ( ( P P P P P P P P 8 8 8 8 8 8 222222222$$$$$$,,,,,,555555111111M M M M M+ M M M M Mr1   