<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
3
vhn                 @   s   d dl mZ d dlmZ d dlmZ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mZ d dlmZ d dlZG d	d
 d
ejeZG dd deZdS )    )convert_path)log)DistutilsErrorDistutilsOptionErrorN)six)DistributionPathMetadatanormalize_path)easy_install)
namespacesc               @   sv   e Zd ZdZdZejddg Zejdg Zd	Zd
d Z	dd Z
dd Zedd Zdd Zdd Zdd Zdd ZdS )developzSet up package for developmentz%install package in 'development mode'	uninstalluUninstall this source package	egg-path=N-Set the path to be used in the .egg-link fileFc             C   s2   | j rd| _| j  | j  n| j  | j  d S )NT)r   Zmulti_versionuninstall_linkZuninstall_namespacesinstall_for_developmentZwarn_deprecated_options)self r   /usr/lib/python3.6/develop.pyrun   s    
zdevelop.runc             C   s&   d | _ d | _tj|  d | _d| _d S )N.)r   egg_pathr
   initialize_options
setup_pathZalways_copy_from)r   r   r   r   r   '   s
    
zdevelop.initialize_optionsc             C   s  | j d}|jr,d}|j|jf}t|| |jg| _tj|  | j  | j	  | j
jtjd |jd }tjj| j|| _|j| _| jd krtjj|j| _t| j}ttjj| j| j}||krtd| t|t|tjj|j|jd| _| j| j| j| j| _d S )Negg_infoz-Please rename %r to %r before using 'develop'z*.eggz	.egg-linkzA--egg-path must be a relative path from the install directory to )project_name)get_finalized_commandZbroken_egg_infor   r   Zegg_nameargsr
   finalize_optionsZexpand_basedirsZexpand_dirsZpackage_indexscanglobospathjoininstall_diregg_linkegg_baser   abspathr	   r   r   r   dist_resolve_setup_pathr   )r   Zeitemplater   Zegg_link_fntargetr   r   r   r   r    .   s<    






zdevelop.finalize_optionsc             C   sh   | j tjdjd}|tjkr0d|jdd  }ttjj|||}|ttjkrdt	d|ttj|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	   r$   r%   r   )r(   r&   r   Zpath_to_setupZresolvedr   r   r   r+   X   s    
zdevelop._resolve_setup_pathc             C   sD  t jrt| jddr| jddd | jd | jd}t|j}| jd|d | jd | jddd | jd | jd}|| _	|| j
_t||j| j
_n"| jd | jdd	d | jd | j  tjr| jtj d t_| j  tjd
| j| j | js,t| jd}|j| j	d | j  W d Q R X | jd | j
| j  d S )NZuse_2to3FZbuild_pyr   )Zinplacer   )r(   Z	build_extr/   zCreating %s (link to %s)w
)r   ZPY3getattrdistributionZreinitialize_commandZrun_commandr   r	   Z	build_libr   r*   locationr   r   Z	_providerZinstall_site_py
setuptoolsZbootstrap_install_fromr
   Zinstall_namespacesr   infor'   r(   dry_runopenwriter   Zprocess_distributionZno_deps)r   Zbpy_cmdZ
build_pathZei_cmdfr   r   r   r   k   s4    







 zdevelop.install_for_developmentc             C   s   t jj| jrztjd| j| j t| j}dd |D }|j  || j	g| j	| j
gfkrhtjd| d S | jszt j| j | js| j| j | jjrtjd d S )NzRemoving %s (link to %s)c             S   s   g | ]}|j  qS r   )r2   ).0liner   r   r   
<listcomp>   s    z*develop.uninstall_link.<locals>.<listcomp>z$Link points to %s: uninstall abortedz5Note: you must uninstall or replace scripts manually!)r#   r$   existsr'   r   r;   r(   r=   closer   r   warnr<   unlinkZ
update_pthr*   r8   scripts)r   Zegg_link_filecontentsr   r   r   r      s    
zdevelop.uninstall_linkc             C   s   || j k	rtj| |S | j| x^| jjp,g D ]N}tjjt	|}tjj
|}tj|}|j }W d Q R X | j|||| q.W d S )N)r*   r
   install_egg_scriptsinstall_wrapper_scriptsr8   rG   r#   r$   r)   r   basenameior=   readZinstall_script)r   r*   Zscript_nameZscript_pathZstrmZscript_textr   r   r   rI      s    

zdevelop.install_egg_scriptsc             C   s   t |}tj| |S )N)VersionlessRequirementr
   rJ   )r   r*   r   r   r   rJ      s    zdevelop.install_wrapper_scripts)r   r   r   )r   Nr   )__name__
__module____qualname____doc__descriptionr
   Zuser_optionsZboolean_optionsZcommand_consumes_argumentsr   r   r    staticmethodr+   r   r   rI   rJ   r   r   r   r   r      s   	*/r   c               @   s(   e Zd ZdZdd Zdd Zdd ZdS )	rN   az  
    Adapt a pkg_resources.Distribution to simply return the project
    name as the 'requirement' so that scripts will work across
    multiple versions.

    >>> 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             C   s
   || _ d S )N)_VersionlessRequirement__dist)r   r*   r   r   r   __init__   s    zVersionlessRequirement.__init__c             C   s   t | j|S )N)r7   rU   )r   namer   r   r   __getattr__   s    z"VersionlessRequirement.__getattr__c             C   s   | j S )N)r   )r   r   r   r   as_requirement   s    z%VersionlessRequirement.as_requirementN)rO   rP   rQ   rR   rV   rX   rY   r   r   r   r   rN      s   rN   )Zdistutils.utilr   Z	distutilsr   Zdistutils.errorsr   r   r#   r"   rL   Zsetuptools.externr   Zpkg_resourcesr   r   r	   Zsetuptools.command.easy_installr
   r:   r   ZDevelopInstallerr   objectrN   r   r   r   r   <module>   s    4