ó
    Þ jÄ  ã                  óf   • S SK Jr  S SKrS SKJr  S SKJrJrJr  \(       a  S SK	J
r
   " S S5      rg)é    )ÚannotationsN)ÚNamedTemporaryFile)ÚTYPE_CHECKINGÚAnyÚCallable)ÚHTTPResponsec                  ód   • \ rS rSrSr      SS jrSS jrSS jrSS jrSSS jjr	SS	 jr
S
rg)ÚCallbackFileWrapperé   aÓ  
Small wrapper around a fp object which will tee everything read into a
buffer, and when that file is closed it will execute a callback with the
contents of that buffer.

All attributes are proxied to the underlying file object.

This class uses members with a double underscore (__) leading prefix so as
not to accidentally shadow an attribute.

The data is stored in a temporary file until it is all available.  As long
as the temporary files directory is disk-based (sometimes it's a
memory-backed-``tmpfs`` on Linux), data will be unloaded to disk if memory
pressure is high.  For small files the disk usually won't be used at all,
it'll all be in the filesystem memory cache, so there should be no
performance impact.
c                ó:   • [        SSS9U l        Xl        X l        g )Nzrb+T)Údelete)r   Ú_CallbackFileWrapper__bufÚ_CallbackFileWrapper__fpÚ_CallbackFileWrapper__callback)ÚselfÚfpÚcallbacks      Ú^/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_vendor/cachecontrol/filewrapper.pyÚ__init__ÚCallbackFileWrapper.__init__!   s   € ô (¨°dÑ;ˆŒ
ØŒ	Ø"�ó    c                ó:   • U R                  S5      n[        X!5      $ )Nr   )Ú__getattribute__Úgetattr)r   Únamer   s      r   Ú__getattr__ÚCallbackFileWrapper.__getattr__(   s    € ð ×"Ñ"Ð#=Ó>ˆÜ�rÓ Ð r   c                ó¦   •  U R                   R                  S L $ ! [         a     Of = f U R                   R                  nU$ ! [         a     gf = f)NF)r   r   ÚAttributeErrorÚclosed)r   r    s     r   Ú__is_fp_closedÚ"CallbackFileWrapper.__is_fp_closed4   s\   € ð	Ø—9‘9—<‘< 4Ð'Ð'øäó 	Ùð	úð	ØŸ9™9×+Ñ+ˆFØˆMøäó 	Øð ð	ús   ‚ š
'¦'«A Á
AÁAc                óŽ  • U R                   (       a“  U R                  R                  5       S:X  a  SnOaU R                  R                  SS5        [	        [
        R
                  " U R                  R                  5       S[
        R                  S95      nU R                  U5        S U l         U R                  R                  5         g )Nr   r   )Úaccess)	r   r   ÚtellÚseekÚ
memoryviewÚmmapÚfilenoÚACCESS_READÚclose)r   Úresults     r   Ú_closeÚCallbackFileWrapper._closeF   s‹   € Ø�?�?Ø�z‰z�‰Ó  AÓ%à‘ð —
‘
—‘  1Ô%Ü#Ü—I’I˜dŸj™j×/Ñ/Ó1°1¼T×=MÑ=MÑNó�ð �O‰O˜FÔ#ð ˆŒð 	�
‰
×ÑÕr   Nc                óÊ   • U R                   R                  U5      nU(       a  U R                  R                  U5        U R	                  5       (       a  U R                  5         U$ ©N)r   Úreadr   ÚwriteÚ"_CallbackFileWrapper__is_fp_closedr-   ©r   ÚamtÚdatas      r   r1   ÚCallbackFileWrapper.reada   sH   € Ø—i‘i—n‘n SÓ)ˆÞð �J‰J×Ñ˜TÔ"Ø×Ñ× Ñ Ø�K‰KŒMàˆr   c                óØ   • U R                   R                  U5      nUS:X  a  US:X  a  U$ U R                  R                  U5        U R	                  5       (       a  U R                  5         U$ )Né   s   
)r   Ú
_safe_readr   r2   r3   r-   r4   s      r   r:   ÚCallbackFileWrapper._safe_readl   sY   € Ø—i‘i×*Ñ*¨3Ó/ˆØ�!‹8˜ ›ð ˆKà�
‰
×Ñ˜ÔØ×Ñ× Ñ Ø�K‰KŒMàˆr   )Ú__bufÚ
__callbackÚ__fp)r   r   r   zCallable[[bytes], None] | NoneÚreturnÚNone)r   Ústrr?   r   )r?   Úbool)r?   r@   r0   )r5   z
int | Noner?   Úbytes)r5   Úintr?   rC   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r3   r-   r1   r:   Ú__static_attributes__© r   r   r
   r
      s=   † ñð$#Øð#Ø*Hð#à	ô#ô
!ôô$ö6	÷r   r
   )Ú
__future__r   r(   Útempfiler   Útypingr   r   r   Úhttp.clientr   r
   rK   r   r   Ú<module>rP      s(   ðõ #ã Ý 'ß /Ñ /æÝ(÷iò ir   