
    4Քh|                    &   S SK Jr  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  S SKJrJrJr  S SKJr  S SKJr  S S	KJr  SS
 jr\
SS j5       r\" SSS9" \R2                  5      rSS jrSS jrSS jrSS jrSS jrSS jrSS jr g)    )annotationsN)	Generator)contextmanager)NamedTemporaryFile)AnyBinaryIOcast)get_path_uid)format_size)retryc                   [         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ospathisabslexistsr   r
   OSErroraccessW_OKdirname)r   previouspath_uids      V/var/www/auris/envauris/lib/python3.13/site-packages/pip/_internal/utils/filesystem.pycheck_path_ownerr      s     ||wgb)&<&<77==H

77??4  zz|q !+D1H  1}$yyrww//!277??4#8d 
   ! !s   C3 3
D ?D c              +    #    [        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   kwargsfresults       r   adjacent_tmp_filer,   -   s      
 
GGOOD!ww%	

 
 
h"	&LLLNHHV]]_%
 
 LLNHHV]]_%
 
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_dirr6   K   sy     ggmmD!!&>	 ggmmD!! 
ww'yyrww''!$''    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  P   >#    U  H  n[         R                  " T5      v   M     g 7fN)randomchoice).0_alphabets     r   	<genexpr>)_test_writable_dir_win.<locals>.<genexpr>c   s     !L8a&--"9"98s   #&   TFz3Unexpected condition testing for writable directory)rangejoinr   r   openO_RDWRO_CREATO_EXCLcloseunlinkFileExistsErrorPermissionErrorr   )r   r%   rB   r3   filefdrC   s         @r   r4   r4   ]   s     :H5H2Y"''!L58!LLLww||D'	ryy2::5		ABB HHRLIIdO# ( G
HH  	 	 	s   AC
C7*	C76C7c                   ^ / n[         R                  " U 5       H7  u  mp4[        R                  " XA5      nUR	                  U4S jU 5       5        M9     U$ )zReturns a list of absolute paths of files beneath path, recursively,
with filenames which match the UNIX-style shell glob pattern.c              3  d   >#    U  H%  n[         R                  R                  TU5      v   M'     g 7fr>   )r   r   rH   )rA   r*   roots     r   rD   find_files.<locals>.<genexpr>   s#     =Wbggll4++Ws   -0)r   walkfnmatchfilterextend)r   patternr+   rB   filesmatchesrU   s         @r   
find_filesr^   y   sG     F''$-a..0=W== ( Mr7   c                    [         R                  R                  U 5      (       a  g[         R                  R                  U 5      $ )Nr   )r   r   islinkgetsizer   s    r   	file_sizerc      s+    	ww~~d77??4  r7   c                *    [        [        U 5      5      $ r>   )r   rc   rb   s    r   format_file_sizere      s    y''r7   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   rW   r   rH   rc   )r   sizerU   _dirsr\   filename	file_paths          r   directory_sizerk      sP    D ggdmUHT4IIi((D  , Kr7   c                *    [        [        U 5      5      $ r>   )r   rk   rb   s    r   format_directory_sizerm      s    ~d+,,r7   )r   strreturnbool)r   rn   r)   r   ro   zGenerator[BinaryIO, None, None])r   rn   r[   rn   ro   z	list[str])r   rn   ro   zint | float)r   rn   ro   rn   )!
__future__r   rX   r   os.pathr?   r   collections.abcr   
contextlibr   tempfiler   typingr   r   r	   pip._internal.utils.compatr
   pip._internal.utils.miscr   pip._internal.utils.retryr   r   r,   replacer6   r4   r^   rc   re   rk   rm   r$   r7   r   <module>r{      s    "  	   
 % % ' & & 3 0 +6 & &0 
.rzz
:
($I8!(-r7   