
    Ri
                        d Z ddlm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 ddZ G d d	          Zd
 Zd ZdS )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                6   t          j        | dddi t          j        |pi           }|j        dz   |j        z   }t          d           t          d|  d|j         d|            |j        d	k    r|S t          j        |j        | |j        |j                  )
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       d/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/setuptools/tests/integration/helpers.pyr   r      s    )rz)ciR)	 	 	A (T/AH
$C	
HIII	
Ac
A
A!,
A
AC
A
ABBB|q


'c18QX
N
NN    c                  .    e Zd ZdZd
dZddZd Zd Zd	S )Archivez5Compatibility layer for ZipFile/Info and TarFile/InforeturnNonec                    || _         |                    d          rt          j        |d          | _        d S |                    d          rt          |          | _        d S t          | d          )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__zArchive.__init__)   sx    !X&& 	O3:<&3Q3QDIIIu%% 	O))DIIIMMMNNNr   -Iterator[ZipInfo] | Iterator[tarfile.TarInfo]c                    t          | j        d          r&t          | j                                                  S t          | j                  S )Ninfolist)hasattrr)   iterr0   )r+   s    r   __iter__zArchive.__iter__2   s@    49j)) 	.	**,,---DIr   c                >    t          |d          r|j        S |j        S )Nr,   )r1   r,   name)r+   zip_or_tar_infos     r   get_namezArchive.get_name7   s&    ?J// 	,"++##r   c                :   t          | j        d          r_| j                            |          }|!d|j         d| j         }t          |          t          |                                d          S t          | j                            |          d          S )NextractfilezInvalid z in r
   )r1   r)   r9   r5   r%   r*   strread)r+   r6   contentmsgs       r   get_contentzArchive.get_content<   s    49m,, 	0i++O<<GK!5KK4>KK oo%w||~~w///49>>/22G<<<r   N)r    r!   )r    r.   )__name__
__module____qualname____doc__r-   r3   r7   r>    r   r   r   r   &   sd        ??O O O O   
$ $ $
= = = = =r   r   c                    t          j        | d          5 }d |                                D             }d d d            n# 1 swxY w Y   d |D             }d |D             S )Nr#   c                ,    g | ]}t          |          S rC   r   .0fs     r   
<listcomp>z%get_sdist_members.<locals>.<listcomp>H   s    111Qa111r   c              3  Z   K   | ]&}d                      |j        dd                   V  'dS )/   N)joinpartsrF   s     r   	<genexpr>z$get_sdist_members.<locals>.<genexpr>J   s8      ;;chhqwqrr{++;;;;;;r   c                    h | ]}||S rC   rC   rF   s     r   	<setcomp>z$get_sdist_members.<locals>.<setcomp>K   s    +++!+A+++r   )r'   r(   getnames)
sdist_pathtarfilesrelative_filess       r   get_sdist_membersrW   F   s    	j&	)	) 2S11#,,..1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 <;U;;;N++~++++s   AAAc                    t          |           5 }t          |                                          cd d d            S # 1 swxY w Y   d S N)r   setnamelist)
wheel_pathzipfiles     r   get_wheel_membersr^   N   s    			 '7##%%&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   !>AArY   )rB   
__future__r   r   r   r'   collections.abcr   pathlibr   r]   r   r   r   r   rW   r^   rC   r   r   <module>rb      s     # " " " " " 				      $ $ $ $ $ $       $ $ $ $ $ $ $ $O O O O(= = = = = = = =@, , ,' ' ' ' 'r   