§
    
Á³g  ã            
       óØ  — 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mZ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 ed¦  «         ed¦  «        ¬¦  «        Z eej        ¦  «        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&dS )é    N)Úcontextmanager)ÚNamedTemporaryFile)ÚAnyÚBinaryIOÚ	GeneratorÚListÚUnionÚcast)ÚretryÚstop_after_delayÚ
wait_fixed)Úget_path_uid)Úformat_sizeÚpathÚreturnc                 óî  — t           j        dk    st          t          d¦  «        sdS t          j                             | ¦  «        sJ ‚d }| |k    r¤t          j                             | ¦  «        r^t          j        ¦   «         dk    r(	 t          | ¦  «        }n# t          $ r Y dS w xY w|dk    S t          j
        | t          j        ¦  «        S | t          j                             | ¦  «        } }| |k    °¤dS )NÚwin32ÚgeteuidTr   F)ÚsysÚplatformÚhasattrÚosr   ÚisabsÚlexistsr   r   ÚOSErrorÚaccessÚW_OKÚdirname)r   ÚpreviousÚpath_uids      ú\/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_internal/utils/filesystem.pyÚcheck_path_ownerr"      sõ   € õ „|�wÒÐ¥g­b°)Ñ&<Ô&<ÐØˆtåŒ7�=Š=˜ÑÔÐÐÐà€HØ
�(Ò
Ð
ÝŒ7�?Š?˜4Ñ Ô ð 	9åŒz‰|Œ|˜qÒ Ð ð!Ý+¨DÑ1Ô1�H�HøÝð !ð !ð !Ø ˜5˜5ð!øøøà 1’}Ð$å”y ¥r¤wÑ/Ô/Ð/à!¥2¤7§?¢?°4Ñ#8Ô#8�dˆHð �(Ò
Ð
ð ˆ5s   ÂB Â
B&Â%B&Úkwargsc              +   óü  K  — t          ddt          j                             | ¦  «        t          j                             | ¦  «        ddœ|¤Ž5 }t          t          |¦  «        }	 |V — |                     ¦   «          t          j        | 	                    ¦   «         ¦  «         n?# |                     ¦   «          t          j        | 	                    ¦   «         ¦  «         w xY w	 ddd¦  «         dS # 1 swxY w Y   dS )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_filer0   +   s0  è è € õ 
ð 
ØÝŒG�OŠO˜DÑ!Ô!ÝŒw×Ò Ñ%Ô%Øð	
ð 
ð
 ð
ð 
ð &ð 
Ý•h Ñ"Ô"ˆð	&ØˆLˆLˆLà�LŠL‰NŒNˆNÝŒH�V—]’]‘_”_Ñ%Ô%Ð%Ð%øð �LŠL‰NŒNˆNÝŒH�V—]’]‘_”_Ñ%Ô%Ð%Ð%øøøÐ%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s*   ÁC1Á%B$Á);C1Â$<C Ã C1Ã1C5Ã8C5Té   g      Ð?)ÚreraiseÚstopÚwaitc                 óJ  — t           j                             | ¦  «        sGt           j                             | ¦  «        }|| k    rn!|} t           j                             | ¦  «        ¯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_dirr;   L   s‡   € õ Œg�mŠm˜DÑ!Ô!ð Ý”—’ Ñ&Ô&ˆØ�TŠ>ˆ>ØØˆõ	 Œg�mŠm˜DÑ!Ô!ð õ 
„w�'ÒÐÝŒy˜�rœwÑ'Ô'Ð'å! $Ñ'Ô'Ð'ó    c                 óò  ‡— d}dŠt          d¦  «        D ]Ô}|d                     ˆfd„t          d¦  «        D ¦   «         ¦  «        z   }t          j                             | |¦  «        }	 t          j        |t          j        t          j        z  t          j        z  ¦  «        }t          j        |¦  «         t          j	        |¦  «          dS # t          $ r Y ŒÄt          $ r Y  dS w xY wt          d	¦  «        ‚)
NÚ(accesstest_deleteme_fishfingers_custard_Ú$abcdefghijklmnopqrstuvwxyz0123456789é
   Ú c              3   ó@   •K  — | ]}t          j        ‰¦  «        V — Œd S ©N)ÚrandomÚchoice)Ú.0Ú_Úalphabets     €r!   ú	<genexpr>z)_test_writable_dir_win.<locals>.<genexpr>d   s-   øè è € Ð!LÐ!L¸a¥&¤-°Ñ"9Ô"9Ð!LÐ!LÐ!LÐ!LÐ!LÐ!Lr<   é   TFz3Unexpected condition testing for writable directory)ÚrangeÚjoinr   r   ÚopenÚO_RDWRÚO_CREATÚO_EXCLÚcloseÚunlinkÚFileExistsErrorÚPermissionErrorr   )r   r*   rG   r8   ÚfileÚfdrH   s         @r!   r9   r9   ^   s  ø€ ð :€HØ5€HÝ�2‰YŒYð ð ˆØ˜"Ÿ'š'Ð!LÐ!LÐ!LÐ!LÅ5ÈÁ8Ä8Ð!LÑ!LÔ!LÑLÔLÑLˆÝŒw�|Š|˜D $Ñ'Ô'ˆð	Ý”˜�rœy­2¬:Ñ5½¼	ÑAÑBÔBˆBõ ŒH�R‰LŒLˆLÝŒI�d‰OŒOˆOØ�4�4øõ ð 	ð 	ð 	ØˆDÝð 	ð 	ð 	ð �5�5�5ð	øøøõ ÐGÑ
HÔ
HÐHs   Á)9CÃ
C'Ã	C'Ã&C'Úpatternc                 ó®   ‡— g }t          j        | ¦  «        D ]<\  Š}}t          j        ||¦  «        }|                     ˆfd„|D ¦   «         ¦  «         Œ=|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   óX   •K  — | ]$}t           j                             ‰|¦  «        V — Œ%d S rC   )r   r   rL   )rF   r.   Úroots     €r!   rI   zfind_files.<locals>.<genexpr>€   s3   øè è € Ð=Ð=°•b”g—l’l 4¨Ñ+Ô+Ð=Ð=Ð=Ð=Ð=Ð=r<   )r   ÚwalkÚfnmatchÚfilterÚextend)r   rW   r/   rG   ÚfilesÚmatchesrZ   s         @r!   Ú
find_filesra   z   sg   ø€ ð €FÝœ' $™-œ-ð >ð >‰ˆˆa�Ý”. ¨Ñ0Ô0ˆØ�ŠÐ=Ð=Ð=Ð=°WÐ=Ñ=Ô=Ñ=Ô=Ð=Ð=Ø€Mr<   c                 ó‚   — t           j                             | ¦  «        rdS t           j                             | ¦  «        S )Nr   )r   r   ÚislinkÚgetsize©r   s    r!   Ú	file_sizerf   „   s1   € å	„w‡~‚~�dÑÔð ØˆqÝŒ7�?Š?˜4Ñ Ô Ð r<   c                 ó:   — t          t          | ¦  «        ¦  «        S rC   )r   rf   re   s    r!   Úformat_file_sizerh   ‹   s   € Ý•y ‘”Ñ'Ô'Ð'r<   c                 ó®   — d}t          j        | ¦  «        D ]=\  }}}|D ]4}t           j                             ||¦  «        }|t	          |¦  «        z  }Œ5Œ>|S )Ng        )r   r[   r   rL   rf   )r   ÚsizerZ   Ú_dirsr_   ÚfilenameÚ	file_paths          r!   Údirectory_sizern   �   si   € Ø€DÝ œg d™mœmð )ð )Ñˆˆe�UØð 	)ð 	)ˆHÝœŸš T¨8Ñ4Ô4ˆIØ•I˜iÑ(Ô(Ñ(ˆDˆDð	)ð €Kr<   c                 ó:   — t          t          | ¦  «        ¦  «        S rC   )r   rn   re   s    r!   Úformat_directory_sizerp   ˜   s   € Ý•~ dÑ+Ô+Ñ,Ô,Ð,r<   )'r\   r   Úos.pathrD   r   Ú
contextlibr   Útempfiler   Útypingr   r   r   r   r	   r
   Úpip._vendor.tenacityr   r   r   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   ÚstrÚboolr"   r0   Ú_replace_retryÚreplacer;   r9   ra   ÚintÚfloatrf   rh   rn   rp   r)   r<   r!   ú<module>r~      s…  ðØ €€€Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dà 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð˜3ð  4ð ð ð ð ð6 ð&˜Cð &¨3ð &°9¸XÀtÈTÐ=QÔ3Rð &ð &ð &ñ „ð&ð2 �˜tÐ*:Ð*:¸1Ñ*=Ô*=ÀJÀJÈtÑDTÔDTÐUÑUÔU€à
ˆ.˜œÑ
$Ô
$€ð
(˜Cð ( Dð (ð (ð (ð (ð$I ð I¨ð Ið Ið Ið Ið8�Sð  3ð ¨4°¬9ð ð ð ð ð!�Cð !˜E # u *Ô-ð !ð !ð !ð !ð(˜3ð ( 3ð (ð (ð (ð (ð˜ð   s¨E zÔ!2ð ð ð ð ð- ð -¨ð -ð -ð -ð -ð -ð -r<   