s
\= : d Z ddlZddlZddlZddlZddlZddlZddlZddlZdZ ej
e Z G d d Z
d
dZddZed k rId
Z e dZn'# e$ rZ edez ej Y dZ[ndZ[ww xY w ej e dS dS )z
Virtual environment (venv) package for Python. Based on PEP 405.
Copyright (C) 2011-2014 Vinay Sajip.
Licensed to the PSF under a contributor agreement.
N)pip
setuptoolsc e Zd ZdZ ddZd Zd Zd Zd Zd Z e
j d
k rddZnddZd
Z
d Zd Zd Zd Zd Zd Zd ZdS )
EnvBuildera
This class exists to allow virtual environment creation to be
customized. The constructor parameters determine the builder's
behaviour when called upon to create a virtual environment.
By default, the builder makes the system (global) site-packages dir
*un*available to the created environment.
If invoked using the Python -m option, the default is to use copying
on Windows platforms but symlinks elsewhere. If instantiated some
other way, the default is to *not* use symlinks.
:param system_site_packages: If True, the system (global) site-packages
dir is available to created environments.
:param clear: If True, delete the contents of the environment directory if
it already exists, before environment creation.
:param symlinks: If True, attempt to symlink rather than copy files into
virtual environment.
:param upgrade: If True, upgrade an existing virtual environment.
:param with_pip: If True, ensure pip is installed in the virtual
environment
:param prompt: Alternative terminal prefix for the environment.
:param upgrade_deps: Update the base venv modules to the latest on PyPI
FNc || _ || _ || _ || _ || _ || _ |dk r0t j t
j }|| _
|| _ d S )N.)system_site_packagesclearsymlinksupgradewith_piporig_promptospathbasenamegetcwdpromptupgrade_deps)selfr r
r r r
r r s :/opt/alt/python-internal/lib64/python3.11/venv/__init__.py__init__zEnvBuilder.__init__/ si %9!
!S==W%%bikk22F( c t j | }| | }| j }d| _ | | | | | j r| | | j s*|
| | | |rd| _ | | | j r|
| dS dS )z
Create a virtual environment in a directory.
:param env_dir: The target directory to create an environment in.
FTN)r r abspathensure_directoriesr create_configurationsetup_pythonr
_setup_pipr
setup_scripts
post_setupr upgrade_dependencies)r env_dircontexttrue_system_site_packagess r createzEnvBuilder.create= s '//'**))'22 %)$=!$)!!!'***'"""= %OOG$$$| %w'''OOG$$$$ / )-D%%%g... /%%g..... / /r c t j | D ]}t j || }t j | st j | rt j | ut j | rt j | d S N)
r listdirr joinislinkisfileremoveisdirshutilrmtree)r r fns r clear_directoryzEnvBuilder.clear_directoryY s *T"" " "BdB''Bw~~b!!
"RW^^B%7%7
" "
r""
"
b!!! " "r c > ||||d}t j |d| S )N)baseplatbaseinstalled_baseinstalled_platbasevenv)schemevars) sysconfigget_path)r r" namer9 s r
_venv_pathzEnvBuilder._venv_patha s4 %")
!$vDAAAAr c d }t j t j | v r t d| dt j d t j | r| j r| | t j }||_
t j | d |_ | j
| j
n|j }d|z |_
|| t j }|st d t j t j | \ }}||_ ||_ ||_ | |d }| |d
} | |d }
| |_ || ||
t j dk rtt j d
k rdt j dk rTt j |d }t j | st j d| ||_ t j || |_ t j || |_ || |j |_ t j dk rt j |j }t j ! | t j ! |j k r(tD # d|j | ||_ |S )z
Create the directories for the environment.
Returns a context object which holds paths in the environment,
for use by subsequent logic.
c t j | st j | d S t j | st j | rt
d| z d S )NzUnable to create directory %r)r r existsmakedirsr* r+
ValueError)ds r create_if_neededz7EnvBuilder.ensure_directories.