<!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>

]2N                 @   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 e  j e  Z Gd d   d  Z	 d d d d d d  Z
 d d d  Z e d	 k r d
 Z y e   d  Z Wn< e k
 r Z z e d e d e j WYd d Z [ Xn Xe j e  d S)    Nc               @   s   e  Z d  Z d d d d d d d  Z d d   Z d d   Z d d	   Z d
 d   Z e j	 d k rr d d   Z
 d d d  Z d d   Z d d   Z d d   Z d d   Z d d   Z d d   Z d S)
EnvBuilderFc             C   s1   | |  _  | |  _ | |  _ | |  _ | |  _ d  S)N)system_site_packagesclearsymlinksupgradewith_pip)selfr   r   r   r   r    r	   -/opt/alt/python35/lib64/python3.5/__init__.py__init__?   s
    				zEnvBuilder.__init__c             C   s   t  j j |  } |  j |  } |  j } d |  _ |  j |  |  j |  |  j rc |  j |  |  j	 s |  j
 |  |  j |  | r d |  _ |  j |  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
   createG   s    					zEnvBuilder.createc             C   s   x t  j |  D]n } t  j j | |  } t  j j |  sO t  j j |  r_ t  j |  q t  j j |  r t j	 |  q Wd  S)N)
r   listdirr   joinislinkisfileremoveisdirshutilrmtree)r   r   fnr	   r	   r
   clear_directorya   s    $zEnvBuilder.clear_directoryc             C   sE  d d   } t  j j |  r4 |  j r4 |  j |  t j   } | | _ t  j j |  d | _	 d | j	 | _
 | |  t  j } t j d k r d | k r t  j d } n	 t j } t  j j t  j j |   \ } } | | _ | | _ | | _ t j d k r.d } d	 }	 t  j j | d
 d  }
 n8 d } d }	 t  j j | d d t j d  d  d  }
 t  j j | |	  | _ } | |  | |
  t j d k rt  j d k rt j d k rt  j j | d  } t  j j |  st  j d |  t  j j | |  | _ } | | _ t  j j | |  | _ | |  | S)Nc             S   sZ   t  j j |   s" t  j |   n4 t  j j |   sF t  j j |   rV t d |    d  S)NzUnable to create directory %r)r   r   existsmakedirsr   r   
ValueError)dr	   r	   r
   create_if_neededq   s    $z7EnvBuilder.ensure_directories.<locals>.create_if_needed   z(%s) darwin__PYVENV_LAUNCHER__win32ZScriptsZIncludeLibzsite-packagesbinincludelibzpython%d.%d       posixlib64l        )r   r   r"   r   r!   typesSimpleNamespacer   splitenv_namepromptenvironsysplatform
executabler   
python_dirZ
python_exer   version_infoZinc_pathmaxsizenamesymlinkbin_pathbin_nameenv_exe)r   r   r&   r   envr;   dirnameZexenameZbinnameZincpathZlibpathr   Z	link_pathbinpathr	   r	   r
   r   i   sL    	
		$				

	
zEnvBuilder.ensure_directoriesc             C   s   t  j j | j d  | _ } t | d d d b } | j d | j  |  j r] d } n d } | j d |  | j d	 t	 j
 d  d
   Wd  QRXd  S)Nz
pyvenv.cfgwencodingzutf-8z
home = %s
truefalsez"include-system-site-packages = %s
zversion = %d.%d.%d
   )r   r   r   r   Zcfg_pathopenwriter<   r   r9   r=   )r   r   r   fZinclr	   r	   r
   r      s    			zEnvBuilder.create_configurationntc             C   s:   | j  d  r d } n | j d  o3 | j  d  } | S)N.pyd.dllTpythonz.exe)rP   rQ   )endswith
startswith)r   rN   resultr	   r	   r
   include_binary   s    	zEnvBuilder.include_binaryc             C   s   |  j  } | s yK t j j |  sZ | rJ t j t j j |  |  n t j | |  Wn+ t k
 r t j d | |  d } Yn X| r t	 j
 | |  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                s  | j  } | j } |  j } | | j |  | j } t j d k r t j j |  se t j	 | d  xBd D]e } t j j
 | |  } t j j |  sl | | j | d d t j j |  sl t j	 | d  ql Wnd } |  j     f d d	   t j |  D } xT | D]L }	 t j j
 | |	  }
 t j j
 | |	  } | | j k r| |
 |  qWt j j
 | |  } t j j |  r  f d
 d	   t j |  D } xE | D]= }	 t j j
 | |	  }
 t j j
 | |	  } | |
 |  qWx t j | j  D] \ } } } d | k rt j j |  } t j j
 | j d |  } t j j |  skt j |  t j j
 | d  }
 t j j
 | d  } t j |
 |  PqWd  S)NrO   i  rR   python3r^   TZDLLsc                s"   g  |  ] }   |  r |  q Sr	   r	   ).0rN   )r-   r	   r
   
<listcomp>   s   	 z+EnvBuilder.setup_python.<locals>.<listcomp>c                s"   g  |  ] }   |  r |  q Sr	   r	   )ra   rN   )r-   r	   r
   rb      s   	 zinit.tclr+   )rR   r`   )rA   rC   r_   r;   r<   r   r?   r   r   chmodr   r"   rV   r   r   walkrW   r   r#   r   r[   )r   r   rF   r   copierrE   suffixZsubdirfilesrN   r\   r]   rootdirsZtcldirr	   )r-   r
   r      sN    					"""zEnvBuilder.setup_pythonc             C   s2   | j  d d d d g } t j | d t j d  S)Nz-ImZ	ensurepipz	--upgradez--default-pipstderr)rC   
subprocesscheck_outputSTDOUT)r   r   cmdr	   r	   r
   r     s    	zEnvBuilder._setup_pipc             C   sG   t  j j t  j j t   } t  j j | d  } |  j | |  d  S)Nscripts)r   r   r   rE   __file__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     s    zEnvBuilder.post_setupc             C   sm   | j  d | j  } | j  d | j  } | j  d | j  } | j  d | j  } | j  d | j  } | S)NZ__VENV_DIR__Z__VENV_NAME__Z__VENV_PROMPT__Z__VENV_BIN_NAME__Z__VENV_PYTHON__)replacer   r6   r7   rB   rC   )r   textr   r	   r	   r
   replace_variables#  s    zEnvBuilder.replace_variablesc          !   C   s  | j  } t |  } xt j |  D]\ } } } | | k r x: | d  d   D]( } | d t j f k rQ | j |  qQ Wq% x| D]}	 t j j | |	  }
 | | d   j t j	  d d   } | s | } n t j j | |  } t j j
 |  st j |  t j j | |	  } t |
 d   }	 |	 j   } Wd  QRX|
 j d  sy4 | j d  } |  j | |  } | j d  } Wn> t k
 r} z d  } t j d |
 |  WYd  d  } ~ Xn X| d  k	 r t | d   }	 |	 j |  Wd  QRXt j |
 |  q Wq% Wd  S)Ncommonr/   rbz.exezutf-8z+unable to copy script %r, may be binary: %swb)rA   lenr   rd   r?   r   r   r   r5   sepr"   r#   rL   readrS   decodert   encodeUnicodeErrorrY   rZ   rM   r   copymode)r   r   r   rF   Zplenrh   ri   rg   r%   rN   Zsrcfilerf   ZdstdirZdstfiledataer	   r	   r
   rq   5  s@    	&		zEnvBuilder.install_scriptsN)__name__
__module____qualname__r   r   r!   r   r   r   r?   rV   r_   r   r   r   r   rt   rq   r	   r	   r	   r
   r   '   s   73	
r   Fc          	   C   s2   t  d | d | d | d |  } | j |   d  S)Nr   r   r   r   )r   r   )r   r   r   r   r   builderr	   r	   r
   r   e  s    r   c       	      C   s"  d } t  j d, k  r d } n t t  d  s3 d } | sH t d   nd d  l } | j d t d d	 d
 d  } | j d d d d d d d | j d d d d d d d d d t j	 d k r d } n d } | j
   } | j d d | d d d d d d | j d d | d d d d d d  | j d! d d d d d d" d d# | j d$ d d d d d d% d d& | j d' d d( d d d d d d) | j |   } | j r| j rt d*   t d+ | j d" | j d | j d% | j d( | j  } x | j D] } | j |  qWd  S)-NTrK   Fbase_prefixz.This script is only for use with Python >= 3.3r   progdescriptionzFCreates virtual Python environments in one or more target directories.epilogz|Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory.ri   metavarZENV_DIRnargs+helpz)A directory to create the environment in.z--system-site-packagesdefaultaction
store_truedestsystem_sitezDGive the virtual environment access to the system site-packages dir.rO   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)z1you cannot supply --upgrade and --clear together.r   )rK   rK   )r9   r=   hasattrr$   argparseArgumentParserr   add_argumentr   r?   add_mutually_exclusive_group
parse_argsr   r   r   r   r   r   ri   r   )	argsZ
compatibler   parserZuse_symlinksgroupoptionsr   r%   r	   r	   r
   main|  sV    						r   __main__r'   z	Error: %sfile)loggingr   r   rk   r9   r3   	getLoggerr   rY   r   r   r   rcrX   r   printrj   exitr	   r	   r	   r
   <module>   s&    ?D
*