3 ”Re ã @ s d Z ddlZddlZddlZddlmZ ddlZddlmZ ddl m Z ddlmZm Z ddlmZ ejeƒZd d „ Zdd„ Zd d„ Zdd„ Zd#dd„Zejƒ Zejddd� ejddddd� ejddddd� ejdddd� d d!„ Zed"k�r eejƒ ƒ dS )$z%Build a project using PEP 517 hooks. é N)Útomlé )ÚBuildEnvironment)ÚPep517HookCaller)ÚtempdirÚmkdir_p)ÚFileNotFoundErrorc C s4 ddh}|t | ƒks0dj|t | ƒ d�}t|ƒ‚dS )z7 Ensure build system has the requisite fields. Úrequiresz build-backendz"Missing required fields: {missing})ÚmissingN)ÚsetÚformatÚ ValueError)ÚsystemÚrequiredÚmessage© r ú‡/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/pep517/build.pyÚvalidate_system s r c C s4 t jj| dƒ}t|ƒ�}tj|ƒ}W dQ R X |d S )zC Load the build system from a source dir (pyproject.toml). zpyproject.tomlNzbuild-system)ÚosÚpathÚjoinÚopenr Úload)Ú source_dirÚ pyprojectÚfZpyproject_datar r r Úload_system s r c C sJ yt | ƒ}W n ttfk r( i }Y nX |jddƒ |jdddgƒ |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. z build-backendz setuptools.build_meta:__legacy__r Ú setuptoolsÚwheel)r r ÚKeyErrorÚ setdefault)r r r r r Ú compat_system' s r! c C s² dj f tƒ Ž}t| |ƒ}|i ƒ}tjd|ƒ |j|ƒ tjdƒ tƒ �b}tjd||ƒ dj f tƒ Ž}t| |ƒ} | |i ƒ} tjj || ƒ}t j|tjj |tjj| ƒƒƒ W d Q R X d S )Nzget_requires_for_build_{dist}zGot build requires: %sz$Installed dynamic build dependencieszTrying to build %s in %szbuild_{dist}) r ÚlocalsÚgetattrÚlogÚinfoÚpip_installr r r r ÚshutilÚmoveÚbasename)ÚhooksÚenvÚdistÚdestZget_requires_nameÚget_requiresÚreqsÚtdZ build_nameÚbuildÚfilenameÚsourcer r r Ú _do_build: s r4 c C sv |p t | ƒ}tjj| |pdƒ}t|ƒ t|ƒ t| |d |jdƒƒ}tƒ �"}|j |d ƒ t ||||ƒ W d Q R X d S )Nr, z build-backendzbackend-pathr )r r r r r r r Úgetr r&