ó
äq^c           @   sÄ   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l	 m
 Z
 e
 r d  d l m Z m Z d  d l m Z d  d	 l m Z n  e  j e  Z d
 e f d     YZ d S(   i˙˙˙˙N(   t   BuildEnvironment(   t   AbstractDistribution(   t   InstallationError(   t   runner_with_spinner_message(   t   MYPY_CHECK_RUNNING(   t   Sett   Tuple(   t   Distribution(   t   PackageFindert   SourceDistributionc           B   s)   e  Z d  Z d   Z d   Z d   Z RS(   s˝   Represents a source distribution.

    The preparation step for these needs metadata for the packages to be
    generated, either using PEP 517 or using the legacy `setup.py egg_info`.
    c         C   s   |  j  j   S(   N(   t   reqt   get_dist(   t   self(    (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyt   get_pkg_resources_distribution   s    c         C   sF   |  j  j   |  j  j o | } | r5 |  j |  n  |  j  j   d  S(   N(   R
   t   load_pyproject_tomlt
   use_pep517t   _setup_isolationt   prepare_metadata(   R   t   findert   build_isolationt   should_isolate(    (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyt   prepare_distribution_metadata   s
    c      	      s     f d   }  j  j } | d  k	 s0 t  t    j  _  j  j j | | d d   j  j j  j  j  \   }   r | d    n  | rÖ t	 j
 d  j   t	 j
 d d j t t t |     n   j  j Q t d  }  j  j } | d  k	 st  | j |   | j   } Wd  QXWd  QX j  j j |  \   }   rf| d	    n   j  j j | | d
 d  d  S(   Nc      
      sP   d } | j  d  j d |  d d j d   t    D   } t |   d  S(   NsZ   Some build dependencies for {requirement} conflict with {conflicting_with}: {description}.t   requirementt   conflicting_witht   descriptions   , c         s   s'   |  ] \ } } d  j  | |  Vq d S(   s   {} is incompatible with {}N(   t   format(   t   .0t	   installedt   wanted(    (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pys	   <genexpr>6   s   (   R   R
   t   joint   sortedR   (   R   t   conflicting_reqst   format_stringt   error_message(   t   conflictingR   (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyt   _raise_conflicts,   s    		t   overlays   Installing build dependenciess"   PEP 517/518 supported requirementss4   Missing build requirements in pyproject.toml for %s.s`   The project does not specify a build backend, and pip cannot fall back to setuptools without %s.s    and s#   Getting requirements to build wheels   the backend dependenciest   normals   Installing backend dependencies(   R
   t   pyproject_requirest   Nonet   AssertionErrorR    t	   build_envt   install_requirementst   check_requirementst   requirements_to_checkt   loggert   warningR   t   mapt   reprR   R   t   pep517_backendt   subprocess_runnert   get_requires_for_build_wheel(   R   R   R#   R&   t   missingt   runnert   backendt   reqs(    (   R"   R   s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyR   *   s@    	

"		(   t   __name__t
   __module__t   __doc__R   R   R   (    (    (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyR	      s   		(   t   loggingt   pip._internal.build_envR    t    pip._internal.distributions.baseR   t   pip._internal.exceptionsR   t   pip._internal.utils.subprocessR   t   pip._internal.utils.typingR   t   typingR   R   t   pip._vendor.pkg_resourcesR   t"   pip._internal.index.package_finderR   t	   getLoggerR8   R-   R	   (    (    (    s>   /tmp/pip-build-aSgKnK/pip/pip/_internal/distributions/sdist.pyt   <module>   s   