
    
_d                     .   d dl mZ d dlZd dlZd dlZd dlmc mZ d dl	Z	ddl
mZmZ ej                  Z G d dej                        Zej                  j                  D  cg c]  } | d    ej                  vs|  c} ej                   z   e_        yc c} w )    )DistutilsArgErrorN   )SetuptoolsDeprecationWarningSetuptoolsWarningc                       e Zd ZdZej
                  j                  ddgz   Zej
                  j                  ddgz   Zdd fdd	 fgZ e	e      Z
d
 Zd Zd Zd Zed        Zd Zy)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
   install_egg_infoc                      yNT selfs    </usr/lib/python3/dist-packages/setuptools/command/install.py<lambda>zinstall.<lambda>           install_scriptsc                      yr   r   r   s    r   r   zinstall.<lambda>    r   r   c                     t        j                  ddd       t        j                  j	                  |        d | _        d | _        y )Nzsetup.py install is deprecated.z
            Please avoid running ``setup.py`` directly.
            Instead, use pypa/build, pypa/installer or other
            standards-based tools.
            zAhttps://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html)see_url)r   emitorigr   initialize_optionsold_and_unmanageable!single_version_externally_managedr   s    r   r   zinstall.initialize_options$   sB    $))-
 X	
 	''-$(!15.r   c                     t         j                  j                  |        | j                  rd| _        y | j                  r%| j                  s| j
                  st        d      y y y )NTzAYou must specify --record or --root when building system packages)r   r   finalize_optionsrootr   recordr   r   s    r   r   zinstall.finalize_options6   sW    %%d+9959D23399T[['   &19 4r   c                     | j                   s| j                  rt        j                  j	                  |       S d | _        d| _        y )N )r    r   r   r   handle_extra_path	path_file
extra_dirsr   s    r   r$   zinstall.handle_extra_pathA   s6    99>><<11$77 r   c                    | j                   s| j                  rt        j                  j	                  |       S | j                  t        j                               s t        j                  j	                  |        y | j                          y )N)	r   r   r   r   run_called_from_setupinspectcurrentframedo_egg_installr   s    r   r(   zinstall.runK   s]    $$(N(N<<##D))&&w';';'=>LLT"!r   c                    | Fd}t        j                  |       t        j                         dk(  rd}t        j                  |       yt	        j
                  |       }|dd D ]f  }|dd \  }t	        j                  |      }|j                  j                  d	d
      }|dk(  r|j                  dk(  rP|dk(  xr |j                  dk(  c S  y)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.
IronPythonz6For best results, pass -X:Frames to enable call stack.Tr         __name__r#   zsetuptools.distrun_commandzdistutils.distrun_commands)
r   r   platformpython_implementationr*   getouterframesgetframeinfo	f_globalsgetfunction)	run_framemsgframesframecallerinfocaller_modules          r   r)   zinstall._called_from_setupV   s     HC""3'--/<?N!&&s+''	2Aa[ 		YEbq	IV''/D",,00R@M 11dmm}6T $44X.9XX		Yr   c                 .   | j                   j                  d      } || j                   d| j                  | j                        }|j	                          d|_        |j                  j                  t        j                  d             | j                  d       | j                   j                  d      j                  g}t        j                  r |j                  dt        j                         ||_        |j!                  d	       d t        _        y )
Neasy_installx)argsr    r!   .z*.egg	bdist_eggr   F)show_deprecation)distributionget_command_classr    r!   ensure_finalizedalways_copy_frompackage_indexscanglobr2   get_command_obj
egg_output
setuptoolsbootstrap_install_frominsertrE   r(   )r   rC   cmdrE   s       r   r,   zinstall.do_egg_installu   s    ((::>J;;	
 	" 	tyy12%!!11+>IIJ,,KK:<<=',0
)r   N)r1   
__module____qualname____doc__r   r   user_optionsboolean_optionsnew_commandsdict_ncr   r   r$   r(   staticmethodr)   r,   r   r   r   r   r      s    A<<,,>	
0 L ll22+6 O
 
./	-.L |
C6$		" Y Y<1r   r   )distutils.errorsr   r*   rO   r4   distutils.command.installcommandr   r   rR   warningsr   r   _installsub_commandsr]   r[   )rU   s   0r   <module>re      s    .    ( (  F <<~1dll ~1F <<,,Agkk0IC  s   !B8B