
^V                 @   sx   d  d l  m Z m Z d  d l Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 Z
 Gd d   d e  Z d S)    )logdir_utilN)map)Command)unpack_archivec               @   s   e  Z d  Z d Z d Z d g Z d d   Z d d   Z d	 d
   Z d d   Z	 d d   Z
 d d   Z d Z d Z e d d    Z d d   Z d S) install_egg_infoz.Install an .egg-info directory for the packageinstall-dir=ddirectory to install toc             C   s   d  |  _  d  S)N)install_dir)self r   I/tmp/pip-build-9m6vxulb/setuptools/setuptools/command/install_egg_info.pyinitialize_options   s    z#install_egg_info.initialize_optionsc             C   s{   |  j  d d  |  j d  } t j d  d  | j | j  j   d } | j |  _ t j	 j
 |  j |  |  _ g  |  _ d  S)Ninstall_libr   egg_infoz	.egg-info)install_dirr   )set_undefined_optionsget_finalized_commandpkg_resourcesDistributionegg_nameZegg_versionr   sourceospathjoinr   targetoutputs)r   Zei_cmdbasenamer   r   r   finalize_options   s    	z!install_egg_info.finalize_optionsc             C   s   |  j  d  t j j |  j  rT t j j |  j  rT t j |  j d |  j n; t j j	 |  j  r |  j
 t j |  j f d |  j  n  |  j s t j |  j  n  |  j
 |  j f  d |  j |  j f  |  j   d  S)Nr   dry_runz	Removing zCopying %s to %s)run_commandr   r   isdirr   islinkr   remove_treer    existsexecuteunlinkr   ensure_directorycopytreer   install_namespaces)r   r   r   r   run"   s    +&	 zinstall_egg_info.runc             C   s   |  j  S)N)r   )r   r   r   r   get_outputs/   s    zinstall_egg_info.get_outputsc                s,     f d d   } t    j   j |  d  S)Nc                s[   x1 d D]) } |  j  |  s, d | |  k r d  Sq W  j j |  t j d |  |  | S)N.svn/CVS//zCopying %s to %s)r-   r.   )
startswithr   appendr   debug)srcdstskip)r   r   r   skimmer4   s    z*install_egg_info.copytree.<locals>.skimmer)r   r   r   )r   r6   r   )r   r   r)   2   s    zinstall_egg_info.copytreec          	   C   s   |  j    } | s d  St j j |  j  \ } } | d 7} |  j j |  t j d |  t	 |  j
 |  } |  j r t |  d  St | d   } | j |  Wd  QXd  S)Nz
-nspkg.pthzInstalling %sZwt)_get_all_ns_packagesr   r   splitextr   r   r1   r   infor   _gen_nspkg_liner    listopen
writelines)r   nspfilenameextlinesfr   r   r   r*   A   s    
	
z#install_egg_info.install_namespacesimport sys, types, os@p = os.path.join(sys._getframe(1).f_locals['sitedir'], *%(pth)r)2ie = os.path.exists(os.path.join(p,'__init__.py'))Im = not ie and sys.modules.setdefault(%(pkg)r, types.ModuleType(%(pkg)r))7mp = (m or []) and m.__dict__.setdefault('__path__',[])(p not in mp) and mp.append(p)4m and setattr(sys.modules[%(parent)r], %(child)r, m)c             C   sp   t  |  } t | j d   } |  j } | j d  \ } } } | rX | |  j 7} n  d j |  t   d S)N.;
)strtuplesplit_nspkg_tmpl
rpartition_nspkg_tmpl_multir   locals)clspkgpthZ
tmpl_linesparentsepchildr   r   r   r:   c   s    	z install_egg_info._gen_nspkg_linec             C   sl   t    } xV |  j j p g  D]B } | j d  } x* | r] | j d j |   | j   q4 Wq Wt |  S)z,Return sorted list of all package namespacesrJ   )setdistributionZnamespace_packagesrO   addr   popsorted)r   r>   rU   r   r   r   r7   n   s    		z%install_egg_info._get_all_ns_packagesN)r   r	   r
   )rC   rD   rE   rF   rG   rH   )rI   )__name__
__module____qualname____doc__descriptionuser_optionsr   r   r+   r,   r)   r*   rP   rR   classmethodr:   r7   r   r   r   r   r      s$   	     r   )	distutilsr   r   r   Zsetuptools.extern.six.movesr   
setuptoolsr   Zsetuptools.archive_utilr   r   r   r   r   r   r   <module>   s   