
0c@_	                 @   s  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z y d d l j Z Wn e	 k
 ru d d l
 Z Yn Xy d d l m Z Wn" e	 k
 r d d l m Z Yn Xd 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 j e  Z d	 d
   Z d d d d d  Z e d d  Z d d   Z  e j!   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   |  j  i   } t j d |  | j |  t j d  t   i } t j d |  |  j | i   } t j j | |  } t	 j
 | t j j | t j j |    Wd  QRXd  S)NzGot build requires: %sz$Installed dynamic build dependencieszTrying to build metadata in %s)Zget_requires_for_build_wheelloginfopip_installr   Z prepare_metadata_for_build_wheelospathjoinshutilmovebasename)hooksenvdestreqstdfilenamesource r   6/tmp/pip-build-jynh7p1z/pip/pip/_vendor/pep517/meta.py
_prep_meta   s    r   .c             C   s   | p t  |   } t j j |  | p' d  } t |  t |  t |  | d | j d   } | j t	  9 t
   ( } | j | d  t | | |  Wd  QRXWd  QRXd  S)Ndistzbuild-backendzbackend-pathrequires)r   r   r   r   r   r
   r   getZsubprocess_runnerr   r   r   r   )
source_dirr   systemr   r   r   r   r   build)   s    

r&   c          
   C   s.   t     } |  d |  t |  SWd  QRXd  S)Nr   )r   r	   )builderout_dirr   r   r   build_as_zip8   s    r)   c             C   sX   t  j j |   }  t |   } t j t d |  d | } t t |   } t	 j
 |  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
    r/   r$   helpz%A directory containing pyproject.tomlz	--out-dirz-oz>Destination in which to save the builds relative to source dirc              C   s#   t  j   }  t |  j |  j  d  S)N)parser
parse_argsr&   r$   r(   )argsr   r   r   mainV   s    r4   __main__)%__doc__argparseloggingr   r   r+   Zimportlib.metadatametadatar-   ImportErrorZimportlib_metadatazipfiler   ZzippZenvbuildr   Zwrappersr   r   Zdirtoolsr   r   r	   r&   r
   r   r   	getLogger__name__r   r   r)   r/   ArgumentParserr1   add_argumentr4   r   r   r   r   <module>   s@   	