ó
    Þ jV  ã            
       ó�  • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
JrJrJrJrJr  S SKJr  S SKJr  S SKJr  S\S	\4S
 jr\S\S\
S	\\SS4   4S j5       r\" SSS9" \R4                  5      rS\S	\4S jrS\S	\4S jrS\S\S	\\   4S jrS\S	\\\4   4S jr S\S	\4S jr!S\S	\\\4   4S jr"S\S	\4S jr#g)é    N)Úcontextmanager)ÚNamedTemporaryFile)ÚAnyÚBinaryIOÚ	GeneratorÚListÚUnionÚcast)Úget_path_uid)Úformat_size)ÚretryÚpathÚreturnc                 ó  • [         R                  S:X  d  [        [        S5      (       d  g[        R                  R                  U 5      (       d   eS nX:w  aš  [        R                  R                  U 5      (       aO  [        R                  " 5       S:X  a   [        U 5      nUS:H  $ [        R                  " U [        R                  5      $ U [        R                  R                  U 5      pX:w  a  Mš  g! [         a     gf = f)NÚwin32ÚgeteuidTr   F)ÚsysÚplatformÚhasattrÚosr   ÚisabsÚlexistsr   r   ÚOSErrorÚaccessÚW_OKÚdirname)r   ÚpreviousÚpath_uids      ÚX/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/utils/filesystem.pyÚcheck_path_ownerr       sÉ   € ô ‡|�|�wÓ¤g¬b°)×&<Ñ&<Øä�7‰7�=‰=˜×ÑÐÐà€HØ
Ó
Ü�7‰7�?‰?˜4× Ñ ä�zŠz‹|˜qÓ ð!Ü+¨DÓ1�Hð   1‘}Ð$ä—y’y ¤r§w¡wÓ/Ð/à!¤2§7¡7§?¡?°4Ó#8�dð Õ
ð øô ó !Ù ð!ús   ÂC3 Ã3
D Ã?D Úkwargsc              +   óÚ  #   • [        SS[        R                  R                  U 5      [        R                  R	                  U 5      SS.UD6 n[        [        U5      n Uv •  UR                  5         [        R                  " UR                  5       5         SSS5        g! UR                  5         [        R                  " UR                  5       5        f = f! , (       d  f       g= f7f)a  Return a file-like object pointing to a tmp file next to path.

The file is created securely and is ensured to be written to disk
after the context reaches its end.

kwargs will be passed to tempfile.NamedTemporaryFile to control
the way the temporary file will be opened.
Fz.tmp)ÚdeleteÚdirÚprefixÚsuffixN© )
r   r   r   r   Úbasenamer
   r   ÚflushÚfsyncÚfileno)r   r!   ÚfÚresults       r   Úadjacent_tmp_filer.   *   s¯   é € ô 
ð 
ØÜ�G‰G�O‰O˜DÓ!Ü�w‰w×Ñ Ó%Øñ	
ð
 ò
ð 
Ü”h Ó"ˆð	&ØŠLà�L‰LŒNÜ�HŠH�V—]‘]“_Õ%÷
ð 
øð �L‰LŒNÜ�HŠH�V—]‘]“_Õ%ú÷
õ 
üs6   ‚AC+ÁCÁB!Á#4CÂ	C+Â!6CÃCÃ
C(Ã$C+é   g      Ð?)Ústop_after_delayÚwaitc                 ól  • [         R                  R                  U 5      (       dM  [         R                  R                  U 5      nX:X  a  O(Un [         R                  R                  U 5      (       d  MM  [         R                  S:X  a%  [         R
                  " U [         R                  5      $ [        U 5      $ )z_Check if a directory is writable.

Uses os.access() on POSIX, tries creating files on Windows.
Úposix)r   r   Úisdirr   Únamer   r   Ú_test_writable_dir_win)r   Úparents     r   Útest_writable_dirr8   H   sy   € ô �g‰g�m‰m˜D×!Ñ!Ü—‘—‘ Ó&ˆØ‹>ØØˆô	 �g‰g�m‰m˜D×!Ó!ô 
‡w�w�'ÓÜ�yŠy˜œrŸw™wÓ'Ð'ä! $Ó'Ð'ó    c                 óô  ^• SnSm[        S5       H½  nUSR                  U4S j[        S5       5       5      -   n[        R                  R                  X5      n [        R                  " U[        R
                  [        R                  -  [        R                  -  5      n[        R                  " U5        [        R                  " U5          g   [        S	5      e! [         a     MÙ  [         a       gf = f)
NÚ(accesstest_deleteme_fishfingers_custard_Ú$abcdefghijklmnopqrstuvwxyz0123456789é
   Ú c              3   óN   >#   • U H  n[         R                  " T5      v •  M     g 7f©N)ÚrandomÚchoice)Ú.0Ú_Úalphabets     €r   Ú	<genexpr>Ú)_test_writable_dir_win.<locals>.<genexpr>`   s   øé € Ð!LÁ8¸a¤&§-¢-°×"9Ð"9Â8ùs   ƒ"%é   TFz3Unexpected condition testing for writable directory)ÚrangeÚjoinr   r   ÚopenÚO_RDWRÚO_CREATÚO_EXCLÚcloseÚunlinkÚFileExistsErrorÚPermissionErrorr   )r   r(   rD   r5   ÚfileÚfdrE   s         @r   r6   r6   Z   sÁ   ø€ ð :€HØ5€HÜ�2ŽYˆØ˜"Ÿ'™'Ô!LÄ5ÈÄ8Ó!LÓLÑLˆÜ�w‰w�|‰|˜DÓ'ˆð	Ü—’˜œrŸy™y¬2¯:©:Ñ5¼¿	¹	ÑAÓBˆBô �HŠH�RŒLÜ�IŠI�dŒOÙñ# ô( ÐGÓ
HÐHøô ó 	ÚÜó 	ò ð	ús   ÁACÃ
C7Ã*	C7Ã6C7Úpatternc                 ó®   ^• / n[         R                  " U 5       H7  u  mp4[        R                  " XA5      nUR	                  U4S jU 5       5        M9     U$ )z‚Returns a list of absolute paths of files beneath path, recursively,
with filenames which match the UNIX-style shell glob pattern.c              3   ób   >#   • U H%  n[         R                  R                  TU5      v •  M'     g 7fr@   )r   r   rJ   )rC   r,   Úroots     €r   rF   Úfind_files.<locals>.<genexpr>|   s#   øé € Ð=±W°”b—g‘g—l‘l 4¨×+Ð+²Wùs   ƒ,/)r   ÚwalkÚfnmatchÚfilterÚextend)r   rU   r-   rD   ÚfilesÚmatchesrX   s         @r   Ú
find_filesr`   v   sG   ø€ ð €FÜŸ'š' $ž-‰ˆˆaÜ—.’. Ó0ˆØ�‰Ô=±WÓ=Ö=ñ (ð €Mr9   c                 óŠ   • [         R                  R                  U 5      (       a  g[         R                  R                  U 5      $ )Nr   )r   r   ÚislinkÚgetsize©r   s    r   Ú	file_sizere   €   s+   € ä	‡w�w‡~�~�d×ÑØÜ�7‰7�?‰?˜4Ó Ð r9   c                 ó*   • [        [        U 5      5      $ r@   )r   re   rd   s    r   Úformat_file_sizerg   ‡   s   € Ü”y “Ó'Ð'r9   c                 ó¶   • Sn[         R                  " U 5       H<  u  p#nU H0  n[         R                  R                  X%5      nU[	        U5      -  nM2     M>     U$ )Ng        )r   rZ   r   rJ   re   )r   ÚsizerX   Ú_dirsr^   ÚfilenameÚ	file_paths          r   Údirectory_sizerm   ‹   sP   € Ø€DÜ Ÿgšg džmÑˆ�UÛˆHÜŸ™Ÿ™ TÓ4ˆIØ”I˜iÓ(Ñ(ŠDó ñ ,ð €Kr9   c                 ó*   • [        [        U 5      5      $ r@   )r   rm   rd   s    r   Úformat_directory_sizero   ”   s   € Ü”~ dÓ+Ó,Ð,r9   )$r[   r   Úos.pathrA   r   Ú
contextlibr   Útempfiler   Útypingr   r   r   r   r	   r
   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   Úpip._internal.utils.retryr   ÚstrÚboolr    r.   Úreplacer8   r6   r`   ÚintÚfloatre   rg   rm   ro   r'   r9   r   Ú<module>r|      s-  ðÛ Û 	Û Û Û 
Ý %Ý 'ß >× >å 3Ý 0Ý +ð˜3ð  4ô ð6 ð&˜Cð &¨3ð &°9¸XÀtÈTÐ=QÑ3Ró &ó ð&ñ0  ¨Ò
.¨r¯z©zÓ
:€ð
(˜Cð ( Dô (ð$I ð I¨ô Ið8�Sð  3ð ¨4°©9ô ð!�Cð !˜E # u *Ñ-ô !ð(˜3ð ( 3ô (ð˜ð   s¨E zÑ!2ô ð- ð -¨õ -r9   