o
    Mf	                     @   s@  d Z ddlZddlZddlZddlZddlZzddlmZ W n e	y+   ddl
ZY nw zddlmZ W n e	yC   ddlmZ Y nw ddlmZ ddlmZmZ ddlmZmZmZ ddlmZmZmZ eeZd	d
 ZdddZefddZdd Z e! Z"e"j#ddd e"j#dddd dd Z$edkre$  dS dS )z2Build metadata for a project using PEP 517 hooks.
    N)Path   )BuildEnvironment)Pep517HookCallerquiet_subprocess_runner)tempdirmkdir_pdir_to_zipfile)validate_systemload_systemcompat_systemc              
   C   s   |  i }td| || td t +}td| | |i }tj||}t	
|tj|tj| W d    d S 1 sFw   Y  d S )NzGot build requires: %sz$Installed dynamic build dependencieszTrying to build metadata in %s)get_requires_for_build_wheelloginfopip_installr    prepare_metadata_for_build_wheelospathjoinshutilmovebasename)hooksenvdestreqstdfilenamesource r   Y/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/pip/_vendor/pep517/meta.py
_prep_meta   s   


 "r!   .c              	   C   s   |pt | }tj| |pd}t| t| t| |d |d}|t	1 t
 }||d  t||| W d    n1 sCw   Y  W d    d S W d    d S 1 s[w   Y  d S )Ndistzbuild-backendzbackend-pathrequires)r   r   r   r   r   r
   r   getsubprocess_runnerr   r   r   r!   )
source_dirr   systemr   r   r   r   r    build)   s   "r)   c                 C   s<   t  }| |d t|W  d    S 1 sw   Y  d S )N)r   )r   r	   )builderout_dirr   r   r    build_as_zip8   s   
$r,   c                 C   s:   t j| } t| }tjt| |d}tt|}t	
|S )z
    Given a source directory (root) of a package,
    return an importlib.metadata.Distribution object
    with metadata build from that package.
    )r'   r(   )r   r   
expanduserr   	functoolspartialr)   r   r,   imp_metaPathDistribution)rootr(   r*   r   r   r   r    load>   s
   
r3   r'   z%A directory containing pyproject.toml)helpz	--out-dirz-oz>Destination in which to save the builds relative to source dirc                  C   s   t  } t| j| j d S )N)parser
parse_argsr)   r'   r+   )argsr   r   r    mainV   s   r8   __main__)r"   NN)%__doc__argparseloggingr   r   r.   importlib.metadatametadatar0   ImportErrorimportlib_metadatazipfiler   zippenvbuildr   wrappersr   r   dirtoolsr   r   r	   r)   r
   r   r   	getLogger__name__r   r!   r,   r3   ArgumentParserr5   add_argumentr8   r   r   r   r    <module>   sL    


