
    Ji
                    ~    S r SSKJ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  SS jr " S S	5      rS
 rS rg)zReusable functions and classes for different types of integration tests.

For example ``Archive`` can be used to check the contents of distribution built
with setuptools, and ``run`` will always try to be as verbose as possible to
facilitate debugging.
    )annotationsN)Iterator)Path)ZipFileZipInfoc           	        [         R                  " U SSS0 [        R                  EU=(       d    0 ES9nUR                  S-   UR
                  -   n[        S5        [        SU  SUR                   SU 35        UR                  S	:X  a  U$ [         R                  " UR                  XR                  UR
                  5      e)
NTutf-8)capture_outputtextencodingenv
z<~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z	Command: z
return code: z

r   )	
subprocessrunosenvironstdoutstderrprint
returncodeCalledProcessError)cmdr   routs       f/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/setuptools/tests/integration/helpers.pyr   r      s    )rzz)ciR)	A ((T/AHH
$C	
HI	IcU/!,,tC5
AB||q


'
'c88QXX
NN    c                  8    \ rS rSrSrS	S jrS
S jrS rS rSr	g)Archive&   z5Compatibility layer for ZipFile/Info and TarFile/Infoc                    Xl         UR                  S5      (       a  [        R                  " US5      U l        g UR                  S5      (       a  [        U5      U l        g [        U S35      e)Nztar.gzr:gzzipz# doesn't seem to be a zip or tar.gz)	_filenameendswithtarfileopen_objr   
ValueError)selffilenames     r   __init__Archive.__init__)   sZ    !X&&3:<<&3QDIu%%)DIz)LMNNr   c                    [        U R                  S5      (       a#  [        U R                  R                  5       5      $ [        U R                  5      $ )Ninfolist)hasattrr'   iterr.   )r)   s    r   __iter__Archive.__iter__2   s9    499j))		**,--DIIr   c                T    [        US5      (       a  UR                  $ UR                  $ )Nr*   )r/   r*   name)r)   zip_or_tar_infos     r   get_nameArchive.get_name7   s'    ?J//"+++###r   c                @   [        U R                  S5      (       a_  U R                  R                  U5      nUc'  SUR                   SU R                   3n[        U5      e[        UR                  5       S5      $ [        U R                  R                  U5      S5      $ )NextractfilezInvalid z in r	   )r/   r'   r9   r4   r#   r(   strread)r)   r5   contentmsgs       r   get_contentArchive.get_content<   s    499m,,ii++O<G !5!5 6d4>>:JK o%w||~w//499>>/2G<<r   )r#   r'   N)returnNone)r@   z-Iterator[ZipInfo] | Iterator[tarfile.TarInfo])
__name__
__module____qualname____firstlineno____doc__r+   r1   r6   r>   __static_attributes__ r   r   r   r   &   s    ?O
$
=r   r   c                   [         R                  " U S5       nUR                  5        Vs/ s H  n[        U5      PM     nnS S S 5        S W 5       nU Vs1 s H  o"(       d  M  UiM     sn$ s  snf ! , (       d  f       N7= fs  snf )Nr!   c              3  ^   #    U  H#  nS R                  UR                  SS 5      v   M%     g7f)/   N)joinparts).0fs     r   	<genexpr>$get_sdist_members.<locals>.<genexpr>J   s&     ;Uchhqwwqr{++Us   +-)r%   r&   getnamesr   )
sdist_pathtarrP   filesrelative_filess        r   get_sdist_membersrX   F   sj    	j&	)S"%,,.1.Qa.1 
* <U;N%+~!A~++ 2 
*	) ,s(   A3A. A3
B%B.A33
Bc                    [        U 5       n[        UR                  5       5      sS S S 5        $ ! , (       d  f       g = fN)r   setnamelist)
wheel_pathzipfiles     r   get_wheel_membersr_   N   s)    		7##%& 
		s   /
=rZ   )rF   
__future__r   r   r   r%   collections.abcr   pathlibr   r^   r   r   r   r   rX   r_   rH   r   r   <module>rc      s<    # 	   $  $O(= =@,'r   