U
    aÊ¹j)  ã                   @  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
 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jZG dd„ dejƒZdd„ ejjD ƒej e_dS )é    )ÚannotationsN)ÚCallable)ÚAnyÚClassVarÚcasté   )ÚDistribution)ÚSetuptoolsDeprecationWarningÚSetuptoolsWarningé   )Ú	bdist_egg)ÚDistutilsArgErrorc                      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‡ fdd„Zdd„ Z‡ fdd„Zedd„ ƒZdd„ Z‡  ZS )Úinstallz7Use 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 ©NT© ©Úselfr   r   úY/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/command/install.pyÚ<lambda>+   ó    zinstall.<lambda>Úinstall_scriptsc                 C  s   dS r   r   r   r   r   r   r   ,   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	   ÚemitÚsuperÚinitialize_optionsÚold_and_unmanageableÚ!single_version_externally_managedr   ©Ú	__class__r   r   r   0   s    ù
zinstall.initialize_optionsc                   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   r#   B   s    
ÿzinstall.finalize_optionsc                 C  s(   | j s| jrtj | ¡S d | _d| _d S )NÚ )r$   r    Úorigr   Úhandle_extra_pathÚ	path_fileÚ
extra_dirsr   r   r   r   r(   L   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   r+   W   s    
zinstall.runc                 C  s¢   | dk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rˆqJ|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   Ú__name__r&   zsetuptools.distÚrun_commandzdistutils.distÚrun_commandsF)
r
   r   ÚplatformÚpython_implementationr-   ÚgetouterframesÚgetframeinfoÚ	f_globalsÚgetÚfunction)Z	run_frameÚmsgÚframesÚframeZcallerÚinfoZcaller_moduler   r   r   r,   d   s     



zinstall._called_from_setupc                 C  s–   | j  d¡}|| j d| j| jd�}| ¡  d|_|j t d¡¡ |  	d¡ t
t| j  d¡ƒ}|jg}tjrz| dtj¡ ||_|jdd	� d t_d S )
NÚeasy_installÚx)Úargsr$   r%   Ú.z*.eggr   r   F)Zshow_deprecation)r   Úget_command_classr$   r%   Úensure_finalizedZalways_copy_fromZpackage_indexÚscanÚglobr3   r   Úbdist_egg_clsÚget_command_objZ
egg_outputÚ
setuptoolsZbootstrap_install_fromÚinsertrB   r+   )r   r@   Úcmdr   rB   r   r   r   r/   …   s$    ü
zinstall.do_egg_install)r2   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r'   r   Úuser_optionsÚboolean_optionsr   ÚdictÚ_ncr   r#   r(   r+   Ústaticmethodr,   r/   Ú__classcell__r   r   r!   r   r      s*   
þþ

þ

 r   c                 C  s   g | ]}|d  t jkr|‘qS )r   )r   rT   )Ú.0rL   r   r   r   Ú
<listcomp>¢   s     rX   )Ú
__future__r   rG   r-   r5   Úcollections.abcr   Útypingr   r   r   rJ   Údistr   Úwarningsr	   r
   r   rH   Údistutils.command.installÚcommandr   r'   Údistutils.errorsr   Ú_installÚsub_commandsr   r   r   r   r   Ú<module>   s&    ÿþ