U
    @{?^a                     @   s|   d dl mZ d dlZd dlZd dlZd dlZd dlm  mZ	 d dl
Z
e	jZG dd de	jZdd e	jjD ej e_dS )    )DistutilsArgErrorNc                   @   s   e Zd ZdZejjddg Zejjddg Zddd fd	d
d fgZe	eZ
dd Zdd Zdd Zdd Zedd Zdd ZdS )installz7Use easy_install to install the package, w/dependencies)old-and-unmanageableNzTry not to use this!)!single-version-externally-managedNz5used by system package builders to create 'flat' eggsr   r   Zinstall_egg_infoc                 C   s   dS NT selfr   r   </usr/lib/python3/dist-packages/setuptools/command/install.py<lambda>       zinstall.<lambda>Zinstall_scriptsc                 C   s   dS r   r   r   r   r   r
   r      r   c                 C   s   t j|  d | _d | _d S N)origr   initialize_optionsold_and_unmanageable!single_version_externally_managedr   r   r   r
   r       s    zinstall.initialize_optionsc                 C   s8   t j|  | jrd| _n| jr4| js4| js4tdd S )NTzAYou must specify --record or --root when building system packages)r   r   finalize_optionsrootr   recordr   r   r   r   r
   r   %   s    zinstall.finalize_optionsc                 C   s(   | j s| jrtj| S d | _d| _d S )N )r   r   r   r   handle_extra_pathZ	path_fileZ
extra_dirsr   r   r   r
   r   0   s    zinstall.handle_extra_pathc                 C   s@   | j s| jrtj| S | t s4tj|  n|   d S r   )	r   r   r   r   run_called_from_setupinspectZcurrentframedo_egg_installr   r   r   r
   r   :   s
    zinstall.runc                 C   sz   | dkr4d}t | t dkr0d}t | dS t| d }|dd \}t|}|jdd	}|d
kox|j	dkS )a  
        Attempt to detect whether run() was called from setup() or by another
        command.  If called by setup(), the parent caller will be the
        'run_command' method in 'distutils.dist', and *its* caller will be
        the 'run_commands' method.  If called any other way, the
        immediate caller *might* be 'run_command', but it won't have been
        called by 'run_commands'. Return True in that case or if a call stack
        is unavailable. Return False otherwise.
        Nz4Call stack not available. bdist_* commands may fail.Z
IronPythonz6For best results, pass -X:Frames to enable call stack.T      __name__r   zdistutils.distZrun_commands)
warningswarnplatformZpython_implementationr   ZgetouterframesZgetframeinfo	f_globalsgetZfunction)Z	run_framemsgresZcallerinfoZcaller_moduler   r   r
   r   E   s    


zinstall._called_from_setupc                 C   s   | j d}|| j d| j| jd}|  d|_|jtd | 	d | j 
djg}tjrp|dtj ||_|jdd	 d t_d S )
Neasy_installx)argsr   r   .z*.eggZ	bdist_eggr   F)Zshow_deprecation)ZdistributionZget_command_classr   r   Zensure_finalizedZalways_copy_fromZpackage_indexscanglobZrun_commandZget_command_objZ
egg_output
setuptoolsZbootstrap_install_frominsertr(   r   )r	   r&   cmdr(   r   r   r
   r   `   s"       
zinstall.do_egg_installN)r   
__module____qualname____doc__r   r   Zuser_optionsZboolean_optionsnew_commandsdict_ncr   r   r   r   staticmethodr   r   r   r   r   r
   r      s(    



r   c                 C   s   g | ]}|d  t jkr|qS )r   )r   r4   ).0r.   r   r   r
   
<listcomp>{   s      r7   )Zdistutils.errorsr   r   r+   r   r    Zdistutils.command.installZcommandr   r   r,   _installZsub_commandsr2   r   r   r   r
   <module>   s   l