a
    hbòfŸ	  ã                   @   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	yV   ddl
ZY n0 zddlmZ W n e	y†   ddlmZ Y n0 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 )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}t d|¡ |  |i ¡}tj ||¡}t	 
|tj |tj |¡¡¡ W d   ƒ n1 sŠ0    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   úT/home/httpd/docs/test/DocsMgr/lib/python3.9/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	¡�P t
ƒ �*}| |d ¡ t|||ƒ W d   ƒ n1 s†0    Y  W d   ƒ n1 s¤0    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.0    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_metaZPathDistribution)Úrootr(   r*   r   r   r   r    Úload>   s
    r2   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    r7   Ú__main__)r"   NN)%Ú__doc__ÚargparseÚloggingr   r   r.   Úimportlib.metadataÚmetadatar0   ÚImportErrorZimportlib_metadataÚzipfiler   ZzippZenvbuildr   Úwrappersr   r   Zdirtoolsr   r   r	   r)   r
   r   r   Ú	getLoggerÚ__name__r   r!   r,   r2   ÚArgumentParserr4   Úadd_argumentr7   r   r   r   r    Ú<module>   sD   

þþ
