£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
a
    XC?hC_                  
   @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZdZe 	e
ZG dd dZdddZddd	Ze
d
krdZze  d ZW n6 ey Z zede ejd W Y dZ[n
dZ[0 0 ee dS )    N)pipZ
setuptoolsc                   @   s   e Zd ZdddZdd Zdd Zd	d
 Zdd Zej	dkrHd ddZ
n
d!ddZ
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )"
EnvBuilderFNc                 C   sF   || _ || _|| _|| _|| _|dkr6tjt }|| _	|| _
d S )N.)system_site_packagesclearsymlinksupgradewith_pipospathbasenamegetcwdpromptupgrade_deps)selfr   r   r   r   r	   r   r    r   2/opt/alt/python39/lib64/python3.9/venv/__init__.py__init__/   s    zEnvBuilder.__init__c                 C   s   t j|}| |}| j}d| _| | | | | jrF| | | j	s`| 
| | | |rtd| _| | | jr| | d S )NFT)r
   r   abspathensure_directoriesr   create_configurationsetup_pythonr	   
_setup_pipr   setup_scripts
post_setupr   upgrade_dependencies)r   env_dircontextZtrue_system_site_packagesr   r   r   create<   s     






zEnvBuilder.createc                 C   s\   t |D ]L}t j||}t j|s4t j|r@t | q
t j|r
t	| q
d S N)
r
   listdirr   joinislinkisfileremoveisdirshutilZrmtree)r   r   fnr   r   r   clear_directoryX   s    zEnvBuilder.clear_directoryc                 C   s  dd }t j|r$| jr$| | t }||_t j|d |_	| j
d urT| j
n|j	}d| |_
|| tj}t jt j|\}}||_||_||_tjdkrd}d}	t j|dd	}
n(d
}d}	t j|ddtjd d  d	}
t j||	 |_}|| ||
 tjdkrXt jdkrXtjdkrXt j|d}t j|sXt d| t j|| |_}||_t j|||_|| |j|_tjdkrt j|j}t j|t j|jkrtd|j| ||_|S )Nc                 S   s@   t j| st |  n$t j| s0t j| r<td|  d S )NzUnable to create directory %r)r
   r   existsmakedirsr"   r#   
ValueError)dr   r   r   create_if_neededh   s    z7EnvBuilder.ensure_directories.<locals>.create_if_needed   z(%s) Zwin32ZScriptsZIncludeLibzsite-packagesbinZincludelibzpython%d.%d   l        posixdarwinZlib64zActual environment location may have moved due to redirects, links or junctions.
  Requested location: "%s"
  Actual location:    "%s") r
   r   r)   r   r(   typesSimpleNamespacer   splitenv_namer   sys_base_executabler   
executable
python_dirZ
python_exeplatformr!   version_infoZinc_pathmaxsizenamesymlinkbin_pathbin_nameenv_exeenv_exec_cmdrealpathnormcaseloggerwarning)r   r   r-   r   r   r;   dirnameZexenameZbinnameZincpathZlibpathr   Z	link_pathbinpathZreal_env_exer   r   r   r   `   s\    



zEnvBuilder.ensure_directoriesc                 C   s   t j|jd |_}t|dddt}|d|j  | jrBd}nd}|d|  |d	t	j
d d
   | jd ur|d| jd W d    n1 s0    Y  d S )Nz
pyvenv.cfgwutf-8)encodingz
home = %s
trueZfalsez"include-system-site-packages = %s
zversion = %d.%d.%d
   z	prompt = 
)r
   r   r!   r   Zcfg_pathopenwriter<   r   r9   r>   r   )r   r   r   fZinclr   r   r   r      s    	
zEnvBuilder.create_configurationntc                 C   s|   | j  }|shz6tj|s@|r4ttj|| nt|| W n$ tyf   td|| d}Y n0 |rxt	
|| d S )NUnable to symlink %r to %rT)r   r
   r   r"   rA   r   	ExceptionrH   rI   r&   copyfile)r   srcdstrelative_symlinks_okZ
force_copyr   r   r   symlink_or_copy   s    
zEnvBuilder.symlink_or_copyc                 C   sZ  t j|ot j| }| jr~|s~t j|s~z,|rLt t j|| nt || W d S  ty|   t	
d|| Y n0 t jt j|\}}t jt jtdd|| }tdst j|s"|drd| }|d d }|dkrd}n|d	krd
}t jt j||| }n|}t j|sJ|sFt	
d| d S t|| d S )NrV   scriptsrU   TZ_dpythonZvenvlauncherZpythonwZvenvwlauncherzUnable to copy %r)r
   r   lexistsr)   r   r"   rA   r   rW   rH   rI   splitextr!   rJ   __file__	sysconfigis_python_buildr#   endswithr&   rX   )r   rY   rZ   r[   Zbad_srcr   ZextZsrcfnr   r   r   r\      s<    

c                 C   s  |j }|j}| j}|j}tjdkr||j| tj|sFt	|d dddt
jd  fD ]F}tj||}tj|s\||j|dd tj|s\t	|d q\n$| jrd	d
 t|D }tdrdd
 |D }n h d}tj|j}|| |D ]6}tj||}	tj|	r ||	tj|| q tdrt|jD ]z\}
}}d|v rPtj|
}tj|jd|}tj|st| tj|
d}	tj|d}t|	|  q̐qPd S )NrU   i  r_   Zpython3zpython3.r.   T)r[   c                 S   s,   g | ]$}t jt j|d  dv r|qS )r.   ).exez.dll)r
   r   rG   ra   .0rT   r   r   r   
<listcomp>  s   z+EnvBuilder.setup_python.<locals>.<listcomp>c                 S   s"   g | ]}t j|d r|qS ))r_   Z	vcruntime)r
   r   rG   
startswithrg   r   r   r   ri     s   >   z
python.exezpython_d.exezpythonw.exezpythonw_d.exezinit.tclr/   )rB   rD   r\   r<   r
   r@   r;   r   r"   chmodr9   r>   r!   r)   r   r    rc   rd   r   addr`   walkr   r*   r&   rX   )r   r   rK   r   ZcopierrJ   suffixsuffixesZbase_exerY   rootdirsfilesZtcldirrZ   r   r   r   r      sP    




zEnvBuilder.setup_pythonc                 C   s$   |j ddddg}tj|tjd d S )Nz-ImZ	ensurepip	--upgradez--default-pip)stderr)rE   
subprocessZcheck_outputZSTDOUTr   r   cmdr   r   r   r   3  s    
zEnvBuilder._setup_pipc                 C   s2   t jt jt}t j|d}| || d S )Nr]   )r
   r   r   rJ   rb   r!   install_scripts)r   r   r   r   r   r   r   <  s    zEnvBuilder.setup_scriptsc                 C   s   d S r   r   )r   r   r   r   r   r   K  s    zEnvBuilder.post_setupc           	         s   |j |j|j|j|jd}dd }dd }tj |j}|drF| n|drV| ntj  fdd	|	 D }|	 D ]\}}|
||}qz|S )
N)Z__VENV_DIR__Z__VENV_NAME__Z__VENV_PROMPT__Z__VENV_BIN_NAME__Z__VENV_PYTHON__c                 S   s   |  dd} d|  dS )N'z'')replacesr   r   r   	quote_ps1h  s    z/EnvBuilder.replace_variables.<locals>.quote_ps1c                 S   s   | S r   r   r{   r   r   r   	quote_batr  s    z/EnvBuilder.replace_variables.<locals>.quote_batz.ps1z.batc                    s   i | ]\}}| |qS r   r   )rh   keyr|   quoter   r   
<dictcomp>      z0EnvBuilder.replace_variables.<locals>.<dictcomp>)r   r8   r   rC   rD   shlexr   script_pathre   itemsrz   )	r   textr   Zreplacementsr}   r~   r   r   Zquotedr   r   r   replace_variablesU  s&    


zEnvBuilder.replace_variablesc                 C   s  |j }t|}t|D ]\}}}||krX|d d  D ]}|dtjfvr8|| q8q|D ]~}	tjdkr|	dr|	drq\tj	||	}
||d  
tjdd  }|s|}ntjj	|g|R  }tj|st| tj	||	}t|
d}	|	 }W d    n1 s0    Y  |
ds|
|_z$|d}| ||}|d}W n8 ty } zd }td|
| W Y d }~n
d }~0 0 |d ur\t|d	}	|	| W d    n1 s0    Y  t|
| q\qd S )
NcommonrU   r_   )rf   z.pdbr2   rbrM   z+unable to copy script %r, may be binary: %swb)rB   lenr
   rm   r@   r$   rj   re   r   r!   r7   sepr)   r*   rR   readr   decoder   encodeUnicodeErrorrH   rI   rS   r&   Zcopymode)r   r   r   rK   Zplenrp   rq   rr   r,   rT   Zsrcfilern   ZdstdirZdstfiledataer   r   r   rx     sL    

(
*zEnvBuilder.install_scriptsc                 C   s@   t dt d|j  |jddddg}|t t| d S )Nz
Upgrading z packages in z-mr   Zinstallrs   )rH   debugCORE_VENV_DEPSrB   rE   extendru   Z
check_callrv   r   r   r   r     s    
zEnvBuilder.upgrade_dependencies)FFFFFNF)F)F)__name__
__module____qualname__r   r   r(   r   r   r
   r@   r\   r   r   r   r   r   rx   r   r   r   r   r   r      s$      
B

+=	
03r   Fc                 C   s"   t ||||||d}||  d S )N)r   r   r   r	   r   r   )r   r   )r   r   r   r   r	   r   r   builderr   r   r   r     s
    r   c           	   
   C   s  d}t jdk rd}ntt ds"d}|s2tdnLdd l}|jtddd	}|jd
dddd |jdddddd tj	dkrd}nd}|
 }|jd|dddd |jd| dddd |jdddddd |jddddd d |jd!d"ddd#d$ |jd%d&d' |jd(ddd)d*d+td || }|jrB|jrBtd,t|j|j|j|j|j|j|jd-}|jD ]}|| qld S ).NT)rP   rP   Fbase_prefixz.This script is only for use with Python >= 3.3r   zFCreates virtual Python environments in one or more target directories.z|Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory.)progZdescriptionZepilogrq   ZENV_DIR+z)A directory to create the environment in.)metavarnargshelpz--system-site-packages
store_truesystem_sitezDGive the virtual environment access to the system site-packages dir.)defaultactiondestr   rU   z
--symlinksr   z[Try to use symlinks rather than copies, when symlinks are not the default for the platform.z--copiesZstore_falsez\Try to use copies rather than symlinks, even when symlinks are the default for the platform.z--clearr   zcDelete the contents of the environment directory if it already exists, before environment creation.rs   r   zlUpgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place.z--without-pipr	   z]Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default))r   r   r   r   z--promptz;Provides an alternative prompt prefix for this environment.)r   z--upgrade-depsr   z;Upgrade core dependencies: {} to the latest version in PyPI z1you cannot supply --upgrade and --clear together.)r   r   r   r   r	   r   r   )r9   r>   hasattrr+   argparseArgumentParserr   add_argumentr
   r@   Zadd_mutually_exclusive_groupformatr!   r   
parse_argsr   r   r   r   r   r	   r   r   rq   r   )	argsZ
compatibler   parserZuse_symlinksgroupZoptionsr   r,   r   r   r   main  s~    










r   __main__r.   z	Error: %s)file)FFFFNF)N)Zloggingr
   r&   ru   r9   rc   r5   r   r   Z	getLoggerr   rH   r   r   r   ZrcrW   r   printrt   exitr   r   r   r   <module>   s2   
   /  

N(