£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
U
    .e                     @   s   d Z ddlZddl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lmZ eeZdd	 Zd
d Zdd Zdd Zd"ddZe Zejddd ejddddd ejddddd ejdddd dd  Zed!kree  dS )#z%Build a project using PEP 517 hooks.
    N   )BuildEnvironment)Pep517HookCaller)tempdirmkdir_p)FileNotFoundErrorc                 C   s4   ddh}|t | ks0dj|t |  d}t|dS )z7
    Ensure build system has the requisite fields.
    requiresbuild-backendz"Missing required fields: {missing})ZmissingN)setformat
ValueError)systemZrequiredmessage r   </usr/lib/python3.8/site-packages/pip/_vendor/pep517/build.pyvalidate_system   s    
r   c              	   C   s4   t j| d}t|}t|}W 5 Q R X |d S )zC
    Load the build system from a source dir (pyproject.toml).
    zpyproject.tomlzbuild-system)ospathjoinopentomlload)
source_dirZ	pyprojectfZpyproject_datar   r   r   load_system   s    
r   c              	   C   sJ   zt | }W n ttfk
r(   i }Y nX |dd |dddg |S )z
    Given a source dir, attempt to get a build system backend
    and requirements from pyproject.toml. Fallback to
    setuptools but only if the file was not found or a build
    system was not indicated.
    r	   z setuptools.build_meta:__legacy__r   Z
setuptoolswheel)r   r   KeyError
setdefault)r   r   r   r   r   compat_system'   s    
r   c              
   C   s   dj f t }t| |}|i }td| || td t b}td|| dj f t }t| |}	|	|i }
tj	||
}t
|tj	|tj|
 W 5 Q R X d S )Nzget_requires_for_build_{dist}zGot build requires: %sz$Installed dynamic build dependencieszTrying to build %s in %szbuild_{dist})r   localsgetattrloginfopip_installr   r   r   r   shutilZmovebasename)hooksenvdistdestZget_requires_nameZget_requiresZreqsZtdZ
build_namebuildfilenamesourcer   r   r   	_do_build:   s    




r-   c              	   C   sv   |p
t | }tj| |pd}t| t| t| |d |d}t "}|	|d  t
|||| W 5 Q R X d S )Nr(   r	   zbackend-pathr   )r   r   r   r   r   r   r   getr   r#   r-   )r   r(   r)   r   r&   r'   r   r   r   r*   L   s      r*   r   z%A directory containing pyproject.toml)helpz--binaryz-b
store_trueF)actiondefaultz--sourcez-sz	--out-dirz-oz>Destination in which to save the builds relative to source dirc                 C   sP   t td | js| jsdnd | js$| js(dnd f}|D ]}t| j|| j q6d S )NZsdistr   )listfilterr,   Zbinaryr*   r   Zout_dir)argsZdistsr(   r   r   r   mainp   s    r6   __main__)NN)__doc__argparseZloggingr   r   r$   Zenvbuildr   Zwrappersr   Zdirtoolsr   r   compatr   Z	getLogger__name__r!   r   r   r   r-   r*   ArgumentParserparseradd_argumentr6   
parse_argsr   r   r   r   <module>   sP   


   