Ë
    
_ßdB  ã                   ó¬   — d dl mZ d dlmZ d dlmZ d dl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Z G d„ d	ej                  e
«      Z G d
„ d«      Zy)é    )Úconvert_path)Úlog)ÚDistutilsOptionErrorN)Úeasy_install)Ú_path)Ú
namespacesc                   ó”   — e Zd ZdZdZej                  ddgz   Zej                  dgz   ZdZd„ Z	d„ Z
d	„ Zed
„ «       Zd„ Zd„ Zd„ Zd„ Zy)ÚdevelopzSet up package for developmentz%install package in 'development mode')Ú	uninstallÚuzUninstall this source package)z	egg-path=Nz-Set the path to be used in the .egg-link filer   Fc                 ó¬   — | j                   r(d| _        | j                  «        | j                  «        n| j	                  «        | j                  «        y )NT)r   Úmulti_versionÚuninstall_linkÚuninstall_namespacesÚinstall_for_developmentÚwarn_deprecated_options©Úselfs    ú</usr/lib/python3/dist-packages/setuptools/command/develop.pyÚrunzdevelop.run   sA   € Ø�>Š>Ø!%ˆDÔØ×ÑÔ!Ø×%Ñ%Õ'à×(Ñ(Ô*Ø×$Ñ$Õ&ó    c                 óf   — d | _         d | _        t        j                  | «       d | _        d| _        y )Nú.)r   Úegg_pathr   Úinitialize_optionsÚ
setup_pathÚalways_copy_fromr   s    r   r   zdevelop.initialize_options%   s-   € ØˆŒØˆŒÜ×'Ñ'¨Ô-ØˆŒØ #ˆÕr   c           	      ó<  — dd l }| j                  d«      }|j                  g| _        t	        j
                  | «       | j                  «        | j                  «        | j                  j                  t        j                  d«      «       |j                  dz   }t        j                  j                  | j                  |«      | _        |j                   | _        | j"                  €.t        j                  j%                  |j                   «      | _        t'        j(                  | j                   «      }t'        j(                  t        j                  j                  | j                  | j"                  «      «      }||k7  rt+        d|z   «      ‚|j-                  ||j/                  |t        j                  j%                  |j0                  «      «      |j                  ¬«      | _        | j5                  | j                   | j                  | j"                  «      | _        y )Nr   Úegg_infoz*.eggz	.egg-linkzA--egg-path must be a relative path from the install directory to ©Úproject_name)Úpkg_resourcesÚget_finalized_commandÚegg_nameÚargsr   Úfinalize_optionsÚexpand_basedirsÚexpand_dirsÚpackage_indexÚscanÚglobÚosÚpathÚjoinÚinstall_dirÚegg_linkÚegg_baser   Úabspathr   Únormpathr   ÚDistributionÚPathMetadatar   ÚdistÚ_resolve_setup_pathr   )r   r"   ÚeiÚegg_link_fnÚtargetr   s         r   r&   zdevelop.finalize_options,   s†  € Ûà×'Ñ'¨
Ó3ˆØ—[‘[�MˆŒ	ä×%Ñ% dÔ+Ø×ÑÔØ×ÑÔà×Ñ×Ñ¤§	¡	¨'Ó 2Ô3à—k‘k KÑ/ˆÜŸ™Ÿ™ T×%5Ñ%5°{ÓCˆŒØŸ™ˆŒØ�=‰=Ð ÜŸG™GŸO™O¨B¯K©KÓ8ˆDŒMä—‘ §¡Ó.ˆÜ—>‘>¤"§'¡'§,¡,¨t×/?Ñ/?ÀÇÁÓ"OÓPˆØ�vÒÜ&ð!Ø#)ñ*óð ð "×.Ñ.ØØ×&Ñ& v¬r¯w©w¯©¸r¿{¹{Ó/KÓLØŸ™ð /ó 
ˆŒ	ð ×2Ñ2Ø�M‰MØ×ÑØ�M‰Mó
ˆ�r   c                 óŠ  — | j                  t        j                  d«      j                  d«      }|t        j                  k7  rd|j                  d«      dz   z  }t        j                  t        j                  j                  |||«      «      }t        j                  t        j                  «      }||k7  rt        d||«      ‚|S )zµ
        Generate a path from egg_base back to '.' where the
        setup script resides and ensure that path points to the
        setup path from $install_dir/$egg_path.
        ú/z../é   zGCan't get a consistent path to setup script from installation directory)Úreplacer,   ÚsepÚrstripÚcurdirÚcountr   r3   r-   r.   r   )r1   r/   r   Úpath_to_setupÚresolvedrA   s         r   r7   zdevelop._resolve_setup_pathS   s¤   € ð !×(Ñ(¬¯©°Ó5×<Ñ<¸SÓAˆØœBŸI™IÒ%Ø! ]×%8Ñ%8¸Ó%=ÀÑ%AÑBˆMÜ—>‘>¤"§'¡'§,¡,¨{¸HÀmÓ"TÓUˆÜ—‘¤§	¡	Ó*ˆØ�vÒÜ&ð*àØó	ð ð Ðr   c                 ól  — | j                  d«       | j                  dd¬«       | j                  d«       t        j                  r*| j	                  t        j                  «       d t        _        | j                  «        t        j                  d| j                  | j                  «       | j                  sJt        | j                  d«      5 }|j                  | j                  dz   | j                  z   «       d d d «       | j                  d | j                   | j"                   «       y # 1 sw Y   Œ2xY w)Nr   Ú	build_extr=   )ÚinplacezCreating %s (link to %s)Úwú
)Úrun_commandÚreinitialize_commandÚ
setuptoolsÚbootstrap_install_fromr   Úinstall_namespacesr   Úinfor0   r1   Údry_runÚopenÚwriter   r   Úprocess_distributionr6   Úno_deps)r   Úfs     r   r   zdevelop.install_for_developmenth   sì   € Ø×Ñ˜Ô$ð 	×!Ñ! +°qÐ!Ô9Ø×Ñ˜Ô%ä×,Ò,Ø×Ñœj×?Ñ?Ô@Ø04ŒJÔ-à×ÑÔ!ô 	�‰Ð+¨T¯]©]¸D¿M¹MÔJØ�|Š|Ü�d—m‘m SÓ)ð @¨QØ—‘˜Ÿ™¨Ñ,¨t¯©Ñ>Ô?÷@ð 	×!Ñ! $¨¯	©	°t·|±|Ð3CÕD÷	@ð @ús   Ã,D*Ä*D3c                 ó²  — t         j                  j                  | j                  «      rÖt	        j
                  d| j                  | j                  «       t        | j                  «      }|D �cg c]  }|j                  «       ‘Œ }}|j                  «        || j                  g| j                  | j                  gfvrt	        j                  d|«       y | j                  st        j                  | j                  «       | j                  s| j                  | j                   «       | j"                  j$                  rt	        j                  d«       y y c c}w )NzRemoving %s (link to %s)z$Link points to %s: uninstall abortedz5Note: you must uninstall or replace scripts manually!)r,   r-   Úexistsr0   r   rO   r1   rQ   r@   Úcloser   r   ÚwarnrP   ÚunlinkÚ
update_pthr6   ÚdistributionÚscripts)r   Úegg_link_fileÚlineÚcontentss       r   r   zdevelop.uninstall_link~   sé   € Ü�7‰7�>‰>˜$Ÿ-™-Ô(Ü�H‰HÐ/°·±ÀÇÁÔNÜ  §¡Ó/ˆMØ2?Ö@¨$˜Ÿ™�Ð@ˆHÐ@Ø×ÑÔ!Ø §¡ °$·-±-ÀÇÁÐ1QÐRÑRÜ—‘Ð?ÀÔJØØ—<’<Ü—	‘	˜$Ÿ-™-Ô(Ø�|Š|Ø�O‰O˜DŸI™IÔ&Ø×Ñ×$Ò$ä�H‰HÐLÕMð %ùò As   Á.Ec                 óÖ  — || j                   urt        j                  | |«      S | j                  |«       | j                  j
                  xs g D ]‹  }t        j                  j                  t        |«      «      }t        j                  j                  |«      }t        j                  |«      5 }|j                  «       }d d d «       | j                  |||«       Œ� y # 1 sw Y   Œ xY w©N)r6   r   Úinstall_egg_scriptsÚinstall_wrapper_scriptsr\   r]   r,   r-   r2   r   ÚbasenameÚiorQ   ÚreadÚinstall_script)r   r6   Úscript_nameÚscript_pathÚstrmÚscript_texts         r   rc   zdevelop.install_egg_scripts�   sÂ   € Ø�t—y‘yÑ ä×3Ñ3°D¸$Ó?Ð?ð
 	×$Ñ$ TÔ*ð  ×,Ñ,×4Ñ4Ò:¸ò 	MˆKÜŸ'™'Ÿ/™/¬,°{Ó*CÓDˆKÜŸ'™'×*Ñ*¨;Ó7ˆKÜ—‘˜Ó%ð *¨Ø"Ÿi™i›k�÷*à×Ñ  k°;ÀÕLñ	M÷*ð *ús   Â/CÃC(	c                 óD   — t        |«      }t        j                  | |«      S rb   )ÚVersionlessRequirementr   rd   ©r   r6   s     r   rd   zdevelop.install_wrapper_scripts¡   s   € Ü% dÓ+ˆÜ×3Ñ3°D¸$Ó?Ð?r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Údescriptionr   Úuser_optionsÚboolean_optionsÚcommand_consumes_argumentsr   r   r&   Ústaticmethodr7   r   r   rc   rd   © r   r   r
   r
      s{   „ Ù(à9€Kà×,Ñ,Ø;ØLð0ñ €Lð
 #×2Ñ2°k°]ÑB€Oà!&Ðò'ò$ò%
ðN ñó ðò(Eò,Nò"Mó$@r   r
   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)rn   a©  
    Adapt a pkg_resources.Distribution to simply return the project
    name as the 'requirement' so that scripts will work across
    multiple versions.

    >>> from pkg_resources import Distribution
    >>> dist = Distribution(project_name='foo', version='1.0')
    >>> str(dist.as_requirement())
    'foo==1.0'
    >>> adapted_dist = VersionlessRequirement(dist)
    >>> str(adapted_dist.as_requirement())
    'foo'
    c                 ó   — || _         y rb   )Ú_VersionlessRequirement__distro   s     r   Ú__init__zVersionlessRequirement.__init__µ   s	   € Øˆ�r   c                 ó.   — t        | j                  |«      S rb   )Úgetattrr|   )r   Únames     r   Ú__getattr__z"VersionlessRequirement.__getattr__¸   s   € Ü�t—{‘{ DÓ)Ð)r   c                 ó   — | j                   S rb   r    r   s    r   Úas_requirementz%VersionlessRequirement.as_requirement»   s   € Ø× Ñ Ð r   N)rp   rq   rr   rs   r}   r�   rƒ   ry   r   r   rn   rn   ¦   s   „ ñòò*ó!r   rn   )Údistutils.utilr   Ú	distutilsr   Údistutils.errorsr   r,   r+   rf   Úsetuptools.command.easy_installr   rL   r   r   ÚDevelopInstallerr
   rn   ry   r   r   ú<module>r‰      sF   ðÝ 'Ý Ý 1Û 	Û Û 	å 8Ý Ý !Û ôU@ˆj×)Ñ)¨<ô U@÷p!ò !r   