
    ~pi
                    |    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y)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           	     z   t        j                  | dddi t        j                  |xs 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       f/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/setuptools/tests/integration/helpers.pyr   r      s    )rzz)ciR)	A ((T/AHH
$C	
HI	IcU/!,,tC5
AB||q


'
'c188QXX
NN    c                  ,    e Zd ZdZddZddZd Zd Zy)	Archivez5Compatibility layer for ZipFile/Info and TarFile/Infoc                    || _         |j                  d      rt        j                  |d      | _        y |j                  d      rt        |      | _        y 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__)   sV    !X&3:<<&3QDIu%)DIz)LMNNr   c                    t        | j                  d      r#t        | j                  j                               S t        | j                        S )Ninfolist)hasattrr&   iterr,   )r(   s    r   __iter__zArchive.__iter__2   s6    499j)		**,--DIIr   c                J    t        |d      r|j                  S |j                  S )Nr)   )r-   r)   name)r(   zip_or_tar_infos     r   get_namezArchive.get_name7   s$    ?J/"+++###r   c                4   t        | j                  d      r^| j                  j                  |      }|'d|j                   d| j                   }t        |      t        |j                         d      S t        | j                  j                  |      d      S )NextractfilezInvalid z in r	   )r-   r&   r5   r1   r"   r'   strread)r(   r2   contentmsgs       r   get_contentzArchive.get_content<   s~    499m,ii++O<G !5!5 6d4>>:JK o%w||~w//499>>/2G<<r   N)returnNone)r;   z-Iterator[ZipInfo] | Iterator[tarfile.TarInfo])__name__
__module____qualname____doc__r*   r/   r3   r:    r   r   r   r   &   s    ?O
$
=r   r   c                    t        j                  | d      5 }|j                         D cg c]  }t        |       }}d d d        d D        }|D ch c]  }|s|	 c}S c c}w # 1 sw Y   *xY wc c}w )Nr    c              3  X   K   | ]"  }d j                  |j                  dd        $ yw)/   N)joinparts).0fs     r   	<genexpr>z$get_sdist_members.<locals>.<genexpr>J   s#     ;chhqwwqr{+;s   (*)r$   r%   getnamesr   )
sdist_pathtarrI   filesrelative_filess        r   get_sdist_membersrP   F   sl    	j&	) 2S"%,,.1Qa112 <U;N%+!A++ 22 2 ,s'   A'A"A'A3A3"A''A0c                v    t        |       5 }t        |j                               cd d d        S # 1 sw Y   y xY wN)r   setnamelist)
wheel_pathzipfiles     r   get_wheel_membersrW   N   s2    		 '7##%&' ' 's   /8rR   )r@   
__future__r   r   r   r$   collections.abcr   pathlibr   rV   r   r   r   r   rP   rW   rA   r   r   <module>r[      s<    # 	   $  $O(= =@,'r   