U o a @sdZddlZddlZddlZddlmZddlZddlmZddl m Z ddl m Z m Z ddlmZeeZd d Zd d Zd dZddZd#ddZeZejdddejdddddejdddddejddddd d!Zed"kreedS)$z%Build a project using PEP 517 hooks. N)toml)BuildEnvironment)Pep517HookCaller)tempdirmkdir_p)FileNotFoundErrorcCs4ddh}|t|ks0dj|t|d}t|dS)z7 Ensure build system has the requisite fields. requires build-backendz"Missing required fields: {missing})missingN)setformat ValueError)systemrequiredmessagerYC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\pep517\build.pyvalidate_systems   rc Cs4tj|d}t|}t|}W5QRX|dS)zC Load the build system from a source dir (pyproject.toml). zpyproject.tomlz build-system)ospathjoinopenrload) source_dir pyprojectfZpyproject_datarrr load_systems rc CsJz t|}Wnttfk r(i}YnX|dd|dddg|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 setuptoolswheel)rrKeyError setdefault)rrrrr compat_system's  r"c Csdjft}t||}|i}td|||tdtb}td||djft}t||} | |i} tj || } t | tj |tj | W5QRXdS)Nzget_requires_for_build_{dist}zGot build requires: %sz$Installed dynamic build dependencieszTrying to build %s in %sz build_{dist}) r localsgetattrloginfo pip_installrrrrshutilmovebasename) hooksenvdistdestZget_requires_name get_requiresreqstdZ build_namebuildfilenamesourcerrr _do_build:s      r5c Csv|p t|}tj||pd}t|t|t||d|d}t"}| |dt ||||W5QRXdS)Nr-r z backend-pathr ) rrrrrrrgetrr'r5)rr-r.rr+r,rrrr2Ls r2rz%A directory containing pyproject.toml)helpz--binaryz-b store_trueF)actiondefaultz--sourcez-sz --out-dirz-oz>Destination in which to save the builds relative to source dircCsPttd|js|jsdnd|js$|js(dndf}|D]}t|j||jq6dS)Nsdistr)listfilterr4binaryr2rZout_dir)argsdistsr-rrrmainps rA__main__)NN)__doc__argparseloggingr pip._vendorrr(ZenvbuildrwrappersrZdirtoolsrrcompatr getLogger__name__r%rrr"r5r2ArgumentParserparser add_argumentrA parse_argsrrrrsP