ó
'—^c           @   sÿ   d  Z  d d l Z 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 d d l m Z d d	 l m Z d d
 l m Z e rã d d l m Z m Z m Z d d l m Z d d l m Z n  e j e ƒ Z d „  Z d S(   s6   Legacy installation process, i.e. `setup.py install`.
iÿÿÿÿN(   t   change_root(   t
   deprecated(   t
   indent_log(   t
   ensure_dir(   t   make_setuptools_install_args(   t   runner_with_spinner_message(   t   TempDirectory(   t   MYPY_CHECK_RUNNING(   t   Listt   Optionalt   Sequence(   t   Scheme(   t   InstallRequirementc	            s»  t  | ƒ |  j j d g  ƒ } t  | ƒ |  j j d g  ƒ } | j }	 t d d ƒ }
 t j j |
 j d ƒ } t |  j	 d | d | d | d ˆ  d | d	 |	 d
 | d | d |  j
 d | ƒ
} t d j |  j ƒ ƒ } t ƒ  + |  j  | d | d |  j ƒ Wd  QXWd  QXt j j | ƒ s3t j d | ƒ d  St |  _ t | ƒ  } | j ƒ  j ƒ  } Wd  QXWd  QX‡  f d †  } xw | D]7 } t j j | ƒ } | j d ƒ r| | ƒ } PqqWt d d j |  ƒ d d j |  j ƒ d d d d ƒ d  Sg  } xa | D]Y } | j ƒ  } t j j | ƒ r6| t j j 7} n  | j t j j  | | ƒ | ƒ ƒ qÿW| j! ƒ  t" | ƒ t j j | d ƒ } t | d ƒ ! } | j# d j | ƒ d ƒ Wd  QXd  S(   Nt   global_optionst   install_optionst   kindt   records   install-record.txtt   record_filenamet   roott   prefixt
   header_dirt   homet   use_user_sitet   no_user_configt	   pycompiles   Running setup.py install for {}t   cmdt   cwds   Record file %s not foundc            s4   ˆ  d  k s t j j |  ƒ r# |  St ˆ  |  ƒ Sd  S(   N(   t   Nonet   ost   patht   isabsR    (   R   (   R   (    sD   /tmp/pip-build-eiI0Wo/pip/pip/_internal/operations/install/legacy.pyt   prepend_rootV   s    s	   .egg-infot   reasons„   {} did not indicate that it installed an .egg-info directory. Only setup.py projects generating .egg-info directories are supported.t   replacementsƒ   for maintainers: updating the setup.py of {0}. For users: contact the maintainers of {0} to let them know to update their setup.py.t   gone_ins   20.2t   issueiV  s   installed-files.txtt   ws   
($   t   listt   optionst   gett   headersR   R   R   t   joinR   t   setup_py_patht   isolatedR   t   formatt   nameR   t	   build_envt   unpacked_source_directoryt   existst   loggert   debugt   Truet   install_succeededt   opent   readt
   splitlinest   dirnamet   endswithR   t   stript   isdirt   sept   appendt   relpatht   sortR   t   write(   t   install_reqR   R   R   R   R   R   R   t   schemeR   t   temp_dirR   t   install_argst   runnert   ft   record_linesR   t   linet	   directoryt   egg_info_dirt	   new_linest   filenamet   inst_files_path(    (   R   sD   /tmp/pip-build-eiI0Wo/pip/pip/_internal/operations/install/legacy.pyt   install   st    						
 
		 

(   t   __doc__t   loggingR   t   distutils.utilR    t   pip._internal.utils.deprecationR   t   pip._internal.utils.loggingR   t   pip._internal.utils.miscR   t$   pip._internal.utils.setuptools_buildR   t   pip._internal.utils.subprocessR   t   pip._internal.utils.temp_dirR   t   pip._internal.utils.typingR   t   typingR   R	   R
   t   pip._internal.models.schemeR   t   pip._internal.req.req_installR   t	   getLoggert   __name__R1   RN   (    (    (    sD   /tmp/pip-build-eiI0Wo/pip/pip/_internal/operations/install/legacy.pyt   <module>   s    