o
    LK&h	                     @   s`   d 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dZG dd dZ	d	d
 Z
d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.
    NPath)ZipFilec                 C   sz   t j| dddi tj|pi d}|jd |j }td td|  d|j d|  |jd	kr2|S t |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out r   W/var/www/html/venv/lib/python3.10/site-packages/setuptools/tests/integration/helpers.pyr      s   	
r   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )Archivez5Compatibility layer for ZipFile/Info and TarFile/Infoc                 C   sH   || _ |drt|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filenamer   r   r   __init__&   s   

zArchive.__init__c                 C   s$   t | jdrt| j S t| jS )Ninfolist)hasattrr    iterr%   )r"   r   r   r   __iter__/   s   
zArchive.__iter__c                 C   s   t |dr|jS |jS )Nr#   )r&   r#   name)r"   zip_or_tar_infor   r   r   get_name4   s   
zArchive.get_namec                 C   s\   t | jdr%| j|}|d u rd|j d| j }t|t| dS t| j|dS )NextractfilezInvalid z in r   )r&   r    r,   r)   r   r!   strread)r"   r*   contentmsgr   r   r   get_content9   s   zArchive.get_contentN)__name__
__module____qualname____doc__r$   r(   r+   r1   r   r   r   r   r   #   s    	r   c                 C   sZ   t | d}dd | D }W d    n1 sw   Y  dd |D }dd |D S )Nr   c                 S   s   g | ]}t |qS r   r   .0fr   r   r   
<listcomp>E       z%get_sdist_members.<locals>.<listcomp>c                 s   s$    | ]}d  |jdd V  qdS )/   N)joinpartsr6   r   r   r   	<genexpr>G   s   " z$get_sdist_members.<locals>.<genexpr>c                 S   s   h | ]}|r|qS r   r   r6   r   r   r   	<setcomp>H   r:   z$get_sdist_members.<locals>.<setcomp>)r   r   getnames)
sdist_pathtarfilesrelative_filesr   r   r   get_sdist_membersC   s
   rF   c                 C   s8   t | }t| W  d    S 1 sw   Y  d S N)r   setnamelist)
wheel_pathzipfiler   r   r   get_wheel_membersK   s   

$rL   rG   )r5   r   r   r   pathlibr   rK   r   r   r   rF   rL   r   r   r   r   <module>   s    
 