£Á°è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>
B
    YI~dR              
   @   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e eZ	G dd dZ
dddZdddZed	krd
Zye  d ZW n4 ek
r Z zede ejd W ddZ[X Y nX ee dS )    Nc               @   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S ) 
EnvBuilderFNc             C   s(   || _ || _|| _|| _|| _|| _d S )N)system_site_packagesclearsymlinksupgradewith_pipprompt)selfr   r   r   r   r   r    r
   2/opt/alt/python37/lib64/python3.7/venv/__init__.py__init__+   s    zEnvBuilder.__init__c             C   sx   t j|}| |}| j}d| _| | | | | jrF| | | j	s`| 
| | | |rtd| _| | d S )NFT)ospathabspathensure_directoriesr   create_configurationsetup_pythonr   
_setup_pipr   setup_scripts
post_setup)r	   env_dircontextZtrue_system_site_packagesr
   r
   r   create4   s    





zEnvBuilder.createc             C   s`   xZt |D ]L}t j||}t j|s6t j|rBt | qt j|rt	| qW d S )N)
r   listdirr   joinislinkisfileremoveisdirshutilZrmtree)r	   r   fnr
   r
   r   clear_directoryN   s    zEnvBuilder.clear_directoryc             C   s  dd }t j|r$| jr$| | t }||_t j|d |_	| j
d k	rT| j
n|j	}d| |_
|| t j}tt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rft jdkrftjdkrft j|d}t j|sft d| t j||	 |_}|	|_t 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_needed^   s    z7EnvBuilder.ensure_directories.<locals>.create_if_needed   z(%s) _base_executablewin32ZScriptsZIncludeLibzsite-packagesbinZincludelibzpython%d.%d   l        posixdarwinlib64)r   r   r"   r   r!   typesSimpleNamespacer   splitenv_namer   environgetattrsys
executabler   
python_dirZ
python_exeplatformr   version_infoZinc_pathmaxsizenamesymlinkbin_pathbin_nameenv_exe)r	   r   r&   r   r   envr8   dirnameZexenameZbinnameZincpathZlibpathr   Z	link_pathbinpathr
   r
   r   r   V   sJ    



zEnvBuilder.ensure_directoriesc          	   C   sz   t j|jd |_}t|dddL}|d|j  | jrBd}nd}|d|  |d	t	j
d d
   W d Q R X d S )Nz
pyvenv.cfgwzutf-8)encodingz
home = %s
trueZfalsez"include-system-site-packages = %s
zversion = %d.%d.%d
   )r   r   r   r   Zcfg_pathopenwriter9   r   r7   r;   )r	   r   r   fZinclr
   r
   r   r      s    	zEnvBuilder.create_configurationntc             C   s~   | j  }|sjy6tj|s@|r4ttj|| nt|| W n& tk
rh   td|| d}Y nX |rzt	
|| d S )NzUnable to symlink %r to %rT)r   r   r   r   r>   basename	Exceptionloggerwarningr   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~y*|rLt t j|| nt || d S  tk
r|   t	
d|| Y nX 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 )NzUnable to symlink %r to %rscriptsrL   TZ_dpythonZvenvlauncherZpythonwZvenvwlauncherzUnable to copy %r)r   r   lexistsr"   r   r   r>   rM   rN   rO   rP   splitextr   rC   __file__	sysconfigis_python_buildr   endswithr   rQ   )r	   rR   rS   rT   Zbad_srcrM   ZextZsrcfnr
   r
   r   rU      s:    


c             C   s  |j }|j}| j}|j}tjdkr||j| tj|sFt	|d xNdD ]F}tj
||}tj|sL||j|dd tj|sLt	|d qLW n| jrdd t|D }tdrdd |D }nd	d
ddg}x:|D ]2}tj
||}tj|r||tj
|| qW tdrxt|jD ]v\}	}
}d|kr0tj|	}tj
|jd|}tj|szt| tj
|	d}tj
|d}t|| P q0W d S )NrL   i  )rX   Zpython3T)rT   c             S   s,   g | ]$}t jt j|d  dkr|qS )r'   )z.exez.dll)r   r   normcaserZ   ).0rK   r
   r
   r   
<listcomp>   s    z+EnvBuilder.setup_python.<locals>.<listcomp>c             S   s"   g | ]}t j|d r|qS ))rX   Z	vcruntime)r   r   r_   
startswith)r`   rK   r
   r
   r   ra      s    z
python.exezpython_d.exezpythonw.exezpythonw_d.exezinit.tclr*   )r?   rA   rU   r9   r   r=   r8   r   r   chmodr   r"   r   r   r\   r]   rY   walkrM   r   r#   r   rQ   )r	   r   rD   r   ZcopierrC   suffixsuffixesrR   rootdirsfilesZtcldirrS   r
   r
   r   r      sF    





zEnvBuilder.setup_pythonc             C   s$   |j ddddg}tj|tjd d S )Nz-ImZ	ensurepipz	--upgradez--default-pip)stderr)rA   
subprocessZcheck_outputZSTDOUT)r	   r   cmdr
   r
   r   r     s    
zEnvBuilder._setup_pipc             C   s2   t jt jt}t j|d}| || d S )NrV   )r   r   r   rC   r[   r   install_scripts)r	   r   r   r
   r
   r   r   "  s    zEnvBuilder.setup_scriptsc             C   s   d S )Nr
   )r	   r   r
   r
   r   r   1  s    zEnvBuilder.post_setupc             C   sJ   | d|j}| d|j}| d|j}| d|j}| d|j}|S )NZ__VENV_DIR__Z__VENV_NAME__Z__VENV_PROMPT__Z__VENV_BIN_NAME__Z__VENV_PYTHON__)replacer   r4   r   r@   rA   )r	   textr   r
   r
   r   replace_variables;  s    zEnvBuilder.replace_variablesc             C   s  |j }t|}xt|D ]\}}}||kr`x,|d d  D ]}|dtjfkr>|| q>W qxR|D ]H}	tjdkr|	dr|	drqhtj	||	}
||d  
tjdd  }|s|}ntjj	|f| }tj|st| tj	||	}t|
d}	|	 }W d Q R X |
ds~y$|d}| ||}|d}W n6 tk
r| } zd }td|
| W d d }~X Y nX |d k	rht|d	}	|	| W d Q R X t|
| qhW qW d S )
NcommonrL   rX   )z.exez.pdbr-   rbzutf-8z+unable to copy script %r, may be binary: %swb)r?   lenr   rd   r=   r   rb   r^   r   r   r3   sepr"   r#   rI   readdecoderp   encodeUnicodeErrorrO   rP   rJ   r   Zcopymode)r	   r   r   rD   Zplenrg   rh   ri   r%   rK   Zsrcfilere   ZdstdirZdstfiledataer
   r
   r   rm   M  sF    


zEnvBuilder.install_scripts)FFFFFN)F)F)__name__
__module____qualname__r   r   r!   r   r   r   r=   rU   r   r   r   r   rp   rm   r
   r
   r
   r   r      s    
5

+<	
r   Fc             C   s    t |||||d}||  d S )N)r   r   r   r   r   )r   r   )r   r   r   r   r   r   builderr
   r
   r   r     s    r   c       	      C   sb  d}t jdk rd}ntt ds"d}|s2tdn,d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r"|jr"td(t|j|j|j|j|j|jd)}x|jD ]}|| qJW d S )*NT)rH   rH   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.)progdescriptionepilogrh   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   rL   z
--symlinksr   z[Try to use symlinks rather than copies, when symlinks are not the default for the platform.z--copies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.z	--upgrader   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   z1you cannot supply --upgrade and --clear together.)r   r   r   r   r   r   )r7   r;   hasattrr$   argparseArgumentParserr|   add_argumentr   r=   add_mutually_exclusive_group
parse_argsr   r   r   r   r   r   r   rh   r   )	argsZ
compatibler   parserZuse_symlinksgroupoptionsr   r%   r
   r
   r   main  s\    










r   __main__r'   z	Error: %s)file)FFFFN)N)Zloggingr   r   rk   r7   r\   r1   Z	getLoggerr|   rO   r   r   r   ZrcrN   r{   printrj   exitr
   r
   r
   r   <module>   s*   
  p 

H$