a
    6Rh                     @  s   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m	Z	m
Z
mZ d dlZddlmZ ddlmZmZ dd	lmZ d dlm  mZ d d
lmZ erddlmZ ndZddddZG dd dejZdd ejjD ej e_dS )    )annotationsN)Callable)TYPE_CHECKINGAnyClassVarcast   )Distribution)SetuptoolsDeprecationWarningSetuptoolsWarning   )	bdist_egg)DistutilsArgError)easy_installstrnamec                 C  s4   | dkrt jddd tjS tdtd| d S )N_installzk`setuptools.command._install` was an internal implementation detail that was left in for numpy<1.9 support.)i     r   )Zdue_datezmodule z has no attribute )r
   emitoriginstallAttributeError__name__r    r   P/opt/python-3.9.24/usr/lib/python3.9/site-packages/setuptools/command/install.py__getattr__   s    r   c                      s   e Zd ZU dZded< ejjddg Zejjddg Zdd	d
 fddd
 fgZ	ded< e
e	Z fddZdd fddZdd Z fddZedd ZddddZ  ZS )r   z7Use easy_install to install the package, w/dependenciesr	   distribution)old-and-unmanageableNzTry not to use this!)!single-version-externally-managedNz5used by system package builders to create 'flat' eggsr   r   install_egg_infoc                 C  s   dS NTr   selfr   r   r   <lambda>8       zinstall.<lambda>install_scriptsc                 C  s   dS r!   r   r"   r   r   r   r$   9   r%   z8ClassVar[list[tuple[str, Callable[[Any], bool] | None]]]new_commandsc                   s*   t jdddd t   d | _d | _d S )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)Zsee_url)r
   r   superinitialize_optionsold_and_unmanageable!single_version_externally_managedr"   	__class__r   r   r)   =   s    
zinstall.initialize_optionsNone)returnc                   s6   t    | jrd| _n| jr2| js2| js2tdd S )NTzAYou must specify --record or --root when building system packages)r(   finalize_optionsrootr+   recordr   r"   r,   r   r   r0   O   s    
zinstall.finalize_optionsc                 C  s(   | j s| jrtj| S d | _d| _d S )N )r1   r+   r   r   handle_extra_path	path_file
extra_dirsr"   r   r   r   r4   Y   s
    zinstall.handle_extra_pathc                   s<   | j s| jrt  S | t s0t   n|   d S )N)r*   r+   r(   run_called_from_setupinspectcurrentframedo_egg_installr"   r,   r   r   r7   d   s    
zinstall.runc                 C  s   | du r4d}t | t dkr0d}t | dS t| }|dd D ]R}|dd \}t|}|jd	d
}|dkr|j	dkrqJ|dko|j	dk  S d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.
IronPythonz6For best results, pass -X:Frames to enable call stack.Tr      r   r   r3   zsetuptools.distrun_commandzdistutils.distrun_commandsF)
r   r   platformpython_implementationr9   getouterframesgetframeinfo	f_globalsgetfunction)Z	run_framemsgframesframeZcallerinfoZcaller_moduler   r   r   r8   q   s     



zinstall._called_from_setupc                 C  s   | j d}tt|| j d| j| jd}|  d|_|j	t

d | d tt| j d}|jg}tjr|dtj ||_|jdd	 d t_d S )
Nr   x)argsr1   r2   .z*.eggr   r   F)Zshow_deprecation)r   get_command_classr   easy_install_clsr1   r2   ensure_finalizedZalways_copy_fromZpackage_indexscanglobr>   bdist_egg_clsget_command_objZ
egg_output
setuptoolsZbootstrap_install_frominsertrL   r7   )r#   r   cmdr   rL   r   r   r   r;      s*    
zinstall.do_egg_install)r   
__module____qualname____doc____annotations__r   r   user_optionsboolean_optionsr'   dict_ncr)   r0   r4   r7   staticmethodr8   r;   __classcell__r   r   r,   r   r   $   s*   




 r   c                 C  s   g | ]}|d  t jvr|qS )r   )r   r_   ).0rW   r   r   r   
<listcomp>   s   rc   )
__future__r   rR   r9   r@   collections.abcr   typingr   r   r   r   rU   distr	   warningsr
   r   r   rS   distutils.command.installcommandr   r   distutils.errorsr   r   rO   r   sub_commandsr'   r   r   r   r   <module>   s,    