
    *,h                     f    d dl Z d dlZd dlZd dlmZ ddlmZmZ ddlm	Z	 ddl
mZ  G d de      Zy)	    N)HTTPAdapter   )CacheControllerPERMANENT_REDIRECT_STATUSES)	DictCache)CallbackFileWrapperc                   X     e Zd Zh dZ	 	 	 	 	 	 d fd	Zd fd	Z	 d fd	Z fdZ xZS )	CacheControlAdapter>   PUTPATCHDELETEc                     t        t        | 
  |i | |
t               n|| _        || _        |xs d| _        |xs t        }	 |	| j                  ||      | _        y )N)GET)cache_etags
serializer)	superr
   __init__r   cache	heuristiccacheable_methodsr   
controller)selfr   r   controller_classr   r   r   argskwcontroller_factory	__class__s             b/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.pyr   zCacheControlAdapter.__init__   s_     	!414>2>$)MY[u
"!2!>h-@,JJKJ
    c                 n   |xs | j                   }|j                  |v rf	 | j                  j                  |      }|r| j                  ||d      S |j                  j                  | j                  j                  |             t        t        | 2  |fi |}|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   r
   send)r   requestr   r   	cacheablecached_responserespr   s          r   r*   zCacheControlAdapter.send(   s    
 &?)?)?	>>Y&'"&//"@"@"I **7OPT*UU OO""4??#F#Fw#OP($4WCC :: '"&'s   B B43B4c                   
 |xs | j                   }|s@|j                  |v r1| 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"                  

fd}t%        j&                  ||      |_        t(        t*        | [  ||      }|j                  | j.                  v rL|j0                  r@| j
                  j3                  |j4                        }	| j6                  j9                  |	       ||_        |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_lengthr   s(    13??a/ HHOO- 0r   )r   r"   r   applystatusr   update_cached_responsereadrelease_connintr   cache_responser   r3   	functoolspartialchunkedr6   types
MethodTyper   r
   r&   invalidating_methodsok	cache_urlurlr   deleter!   )r   r+   responser!   r   r,   r-   r6   r.   rE   r5   r   s             @r   r&   z"CacheControlAdapter.build_response=   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 ($>wQ >>T66647711'++>IJJi( %r   c                 ^    | j                   j                          t        t        |           y N)r   closer   r
   )r   r   s    r   rK   zCacheControlAdapter.close   s!    

!4.0r   )NTNNNNrJ   )FN)	__name__
__module____qualname__rC   r   r*   r&   rK   __classcell__)r   s   @r   r
   r
      s?    5 
*, FJHT1 1r   r
   )rA   r>   r$   pip._vendor.requests.adaptersr   r   r   r   r   r   filewrapperr   r
    r   r   <module>rS      s*   
    5 D  ,y1+ y1r   