o
    Ëý°jŸ	  ã                   @   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rže$ƒ  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   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/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    ÿÿ

þþ
ÿ