Ë
    ��hV  ã            
       ó„  — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZmZmZmZmZ d dlmZ d dlmZ d dlmZ ded	efd
„Zedede
d	eeddf   fd„«       Z  edd¬«      ej4                  «      Zded	efd„Zded	efd„Zdeded	ee   fd„Zded	eeef   fd„Z ded	efd„Z!ded	eeef   fd„Z"ded	efd„Z#y)é    N)Úcontextmanager)ÚNamedTemporaryFile)ÚAnyÚBinaryIOÚ	GeneratorÚListÚUnionÚcast)Úget_path_uid)Úformat_size)ÚretryÚpathÚreturnc                 óÞ  — t         j                  dk(  st        t        d«      syt        j                  j                  | «      sJ ‚d }| |k7  r’t        j                  j                  | «      rLt        j                  «       dk(  r	 t        | «      }|dk(  S t        j                  | t        j                  «      S | t        j                  j                  | «      } }| |k7  rŒ’y# t        $ r Y yw xY w)NÚwin32ÚgeteuidTr   F)ÚsysÚplatformÚhasattrÚosr   ÚisabsÚlexistsr   r   ÚOSErrorÚaccessÚW_OKÚdirname)r   ÚpreviousÚpath_uids      ú\/var/www/skyplay_api_hub/venv/lib/python3.12/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ˆHð �(Ó
ð øô ò !Ù ð!ús   ÂC  Ã 	C,Ã+C,Úkwargsc              +   óÌ  K  — t        ddt        j                  j                  | «      t        j                  j	                  | «      ddœ|¤Ž5 }t        t        |«      }	 |–— |j                  «        t        j                  |j                  «       «       	 ddd«       y# |j                  «        t        j                  |j                  «       «       w xY w# 1 sw Y   yxY w­w)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 Á#3CÂ	C$Â 5CÃCÃC!ÃC$é   g      Ð?)Ústop_after_delayÚwaitc                 óR  — t         j                  j                  | «      sGt         j                  j                  | «      }|| k(  rn"|} t         j                  j                  | «      sŒGt         j                  dk(  r$t        j
                  | t         j                  «      S t        | «      S )zgCheck 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   su   € ô �g‰g�m‰m˜DÔ!Ü—‘—‘ Ó&ˆØ�TŠ>ØØˆô	 �g‰g�m‰m˜DÕ!ô 
‡w�w�'ÒÜ�y‰y˜œrŸw™wÓ'Ð'ä! $Ó'Ð'ó    c                 óæ  ‡— d}dŠt        d«      D ]º  }|dj                  ˆfd„t        d«      D «       «      z   }t        j                  j                  | |«      }	 t        j                  |t        j
                  t        j                  z  t        j                  z  «      }t        j                  |«       t        j                  |«        y t        d	«      ‚# t        $ r Y ŒÓt        $ r Y  yw xY w)
NÚ(accesstest_deleteme_fishfingers_custard_Ú$abcdefghijklmnopqrstuvwxyz0123456789é
   Ú c              3   óH   •K  — | ]  }t        j                  ‰«      –— Œ y ­w©N)ÚrandomÚchoice)Ú.0Ú_Úalphabets     €r   ú	<genexpr>z)_test_writable_dir_win.<locals>.<genexpr>`   s   øè ø€ Ò!L¸a¤&§-¡-°×"9Ñ!Lù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Ã	C0Ã$C0Ã/C0Úpatternc                 ó¨   ‡— g }t        j                  | «      D ]6  \  Š}}t        j                  ||«      }|j	                  ˆfd„|D «       «       Œ8 |S )z†Returns a list of absolute paths of files beneath path, recursively,
    with filenames which match the UNIX-style shell glob pattern.c              3   ó^   •K  — | ]$  }t         j                  j                  ‰|«      –— Œ& y ­wr@   )r   r   rI   )rC   r,   Úroots     €r   rF   zfind_files.<locals>.<genexpr>|   s    øè ø€ Ò=°”b—g‘g—l‘l 4¨×+Ñ=ùs   ƒ*-)r   ÚwalkÚfnmatchÚfilterÚextend)r   rT   r-   rD   ÚfilesÚmatchesrW   s         @r   Ú
find_filesr^   v   sP   ø€ ð €FÜŸ'™' $›-ò >‰ˆˆa�Ü—.‘. ¨Ó0ˆØ�‰Ó=°WÔ=Õ=ð>ð €Mr9   c                 ó€   — t         j                  j                  | «      ryt         j                  j                  | «      S )Nr   )r   r   ÚislinkÚgetsize©r   s    r   Ú	file_sizerc   €   s(   € ä	‡w�w‡~�~�dÔØÜ�7‰7�?‰?˜4Ó Ð r9   c                 ó*   — t        t        | «      «      S r@   )r   rc   rb   s    r   Úformat_file_sizere   ‡   s   € Ü”y “Ó'Ð'r9   c                 ó°   — d}t        j                  | «      D ];  \  }}}|D ]0  }t         j                  j                  ||«      }|t	        |«      z  }Œ2 Œ= |S )Ng        )r   rX   r   rI   rc   )r   ÚsizerW   Ú_dirsr\   ÚfilenameÚ	file_paths          r   Údirectory_sizerk   ‹   s^   € Ø€DÜ Ÿg™g d›mò )Ñˆˆe�UØò 	)ˆHÜŸ™Ÿ™ T¨8Ó4ˆIØ”I˜iÓ(Ñ(‰Dñ	)ð)ð €Kr9   c                 ó*   — t        t        | «      «      S r@   )r   rk   rb   s    r   Úformat_directory_sizerm   ”   s   € Ü”~ dÓ+Ó,Ð,r9   )$rY   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Úfloatrc   re   rk   rm   r'   r9   r   ú<module>rz      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   