ó
    �RjÇ  ã                  óà   • S SK Jr  S SKrS SKrS SKrS SKrS SKJrJrJ	r	J
r
  S SKJr  S SKJr  S SKJrJr  S SKJr  \(       a   S SKJrJr  S S	KJr  S S
KJr  S SKJr  S SKJr   " S S\5      rg)é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚ
CollectionÚMapping)ÚHTTPAdapter)Ú	DictCache)ÚPERMANENT_REDIRECT_STATUSESÚCacheController)ÚCallbackFileWrapper)ÚPreparedRequestÚResponse)ÚHTTPResponse)Ú	BaseCache)ÚBaseHeuristic)Ú
Serializerc                  óÞ   ^ • \ rS rSr1 Skr      S                 S	U 4S jjjr      S
               SU 4S jjjr  S         SU 4S jjjrSU 4S jjrSr	U =r
$ )ÚCacheControlAdapteré   >   ÚPUTÚPATCHÚDELETEc                óÄ   >• [         T
U ]  " U0 UD6  Uc
  [        5       OUU l        XPl        U=(       d    SU l        U=(       d    [        n	U	" U R                  X$S9U l        g )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             €ÚLD:\diplom_project\venv\Lib\site-packages\pip/_vendor/cachecontrol/adapter.pyr   ÚCacheControlAdapter.__init__   sX   ø€ ô 	‰Ò˜$Ð% "Ò%Ø$)¡M”Y”[°uˆŒ
Ø"ŒØ!2×!>°hˆÔà-×@´ÐÙ,Ø�J‰J Kñ
ˆ�ó    c                óz  >• U=(       d    U R                   nUR                  U;   ag   U R                  R                  U5      n	U	(       a  U R                  XSS9$ UR                  R                  U R                  R                  U5      5        [        TU ]-  XX4XV5      n
U
$ ! [        R
                   a    Sn	 Nvf = f)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)   r6   ÚCacheControlAdapter.send3   sª   ø€ ð &×?¨×)?Ñ)?ˆ	Ø�>‰>˜YÓ&ð'Ø"&§/¡/×"@Ñ"@ÀÓ"I�ö Ø×*Ñ*¨7ÐPTÐ*ÐUÐUð �O‰O×"Ñ" 4§?¡?×#FÑ#FÀwÓ#OÔPä‰w‰|˜G¨W¸dÓLˆàˆøô —:‘:ó 'Ø"&’ð'ús   ¨B! Â!B:Â9B:c           
     ól  >^
• U=(       d    U R                   nU(       Gd…  UR                  U;   Gat  U R                  (       a  U R                  R                  U5      nUR                  S:X  aC  U R
                  R                  X5      nXbLa  SnUR                  SS9  UR                  5         UnOõ[        UR                  5      [        ;   a  U R
                  R                  X5        O¼[        UR                  [        R                  " U R
                  R                  U[         R"                  " U5      5      5      Ul        UR$                  (       aR  UR&                  R(                  m
    SU
4S jjn[        R                  " U[         R"                  " U5      5      Ul        [*        TU ]Y  X5      nUR                  U R.                  ;   a`  UR0                  (       aO  UR2                  c   eU R
                  R5                  UR2                  5      n	U R6                  R9                  U	5        X8l        U$ )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                ó‚   >• U " 5       nUc  g T" U5        UR                   S:X  a  UR                  R                  5         g g )Nr   )Ú
chunk_leftÚ_fpÚ_close)Ú	weak_selfr#   Úsuper_update_chunk_lengths     €r)   Ú_update_chunk_lengthÚ@CacheControlAdapter.build_response.<locals>._update_chunk_lengthŠ   s;   ø€ ñ  )›{˜Ø™<Ø"á1°$Ô7ØŸ?™?¨aÓ/Ø ŸH™HŸO™OÕ-ð 0r+   )rG   z#weakref.ReferenceType[HTTPResponse]ÚreturnÚNone)r!   r.   r    ÚapplyÚstatusr"   Úupdate_cached_responseÚreadÚrelease_connÚintr
   Úcache_responser   rE   Ú	functoolsÚpartialÚweakrefÚrefÚchunkedr(   rI   r   r2   Úinvalidating_methodsÚokÚurlÚ	cache_urlr   Údeleter-   )r#   r7   Úresponser-   r!   r=   r>   rI   r?   r\   rH   r(   s             @€r)   r2   Ú"CacheControlAdapter.build_responseQ   s¾  ù€ ð &×?¨×)?Ñ)?ˆ	ß˜gŸn™n°	Ô9ð �~�~ØŸ>™>×/Ñ/°Ó9�ð �‰ #Ó%ð
 #'§/¡/×"HÑ"HØó#�ð #Ò2Ø!%�Jð —‘¨U�Ñ3Ø×%Ñ%Ô'à*‘ô �X—_‘_Ó%Ô)DÓDØ—‘×.Ñ.¨wÕAô  3Ø—L‘LÜ×%Ò%ØŸ™×6Ñ6¸ÄÇÂÈXÓAVóó �”ð ×#×#Ø08×0BÑ0B×0WÑ0WÐ-ð	.Ø#Fð	.à÷	.ô 5>×4EÒ4EØ,¬g¯kªk¸(Ó.Có5�HÔ1ô ™Ñ/°ÓBˆð �>‰>˜T×6Ñ6Ó6¸4¿7¿7Ø—;‘;Ñ*Ð*Ð*ØŸ™×1Ñ1°'·+±+Ó>ˆIØ�J‰J×Ñ˜iÔ(ð %Œàˆr+   c                óV   >• U R                   R                  5         [        TU ]  5         g )N)r   Úcloser   )r#   r(   s    €r)   ra   ÚCacheControlAdapter.close¦   s   ø€ Ø�
‰
×ÑÔÜ‰‰�r+   )r   r!   r"   r    )NTNNNN)r   zBaseCache | Noner   Úboolr$   ztype[CacheController] | Noner   zSerializer | Noner    zBaseHeuristic | Noner!   úCollection[str] | Noner%   r   r&   r   rK   rL   )FNTNNN)r7   r   r8   rc   r9   z7None | float | tuple[float, float] | tuple[float, None]r:   z
bool | strr;   z4None | bytes | str | tuple[bytes | str, bytes | str]r<   zMapping[str, str] | Noner!   rd   rK   r   )FN)
r7   r   r^   r   r-   rc   r!   rd   rK   r   )rK   rL   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rY   r   r6   r2   ra   Ú__static_attributes__Ú__classcell__)r(   s   @r)   r   r      sB  ø† Ú5Ðð #'Ø Ø9=Ø(,Ø*.Ø48ð
àð
ð ð
ð 7ð	
ð
 &ð
ð (ð
ð 2ð
ð ð
ð ð
ð 
÷
ð 
ð0 ØKOØ!ØGKØ,0Ø48ðà ðð ðð Ið	ð
 ðð Dðð *ðð 2ðð 
÷ð ðD !Ø48ðSà ðSð ðSð ð	Sð
 2ðSð 
÷Sð S÷jõ r+   r   )Ú
__future__r   rT   ÚtypesrV   r0   Ú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>rw      sH   ðõ #ã Û Û Û ß :Ó :å 5å 4ß \Ý Dæß>Ý0å8ÝAÝ=ôM˜+õ Mr+   