Your IP : 3.135.205.62
�
�g~h � �2 � d Z ddlZddlZddlZddlZddlZddlZddlZddlZdZ ej e� Z G d� d� Z
dd�Zd
d�Zedk( rd Z e� dZ ej* e� yy# e$ r!Z ed
ez ej( �� Y dZ[�5dZ[ww xY w)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)�pipc � � e Zd ZdZ dd�Zd� Zd� Zd� Zed� � Z d� Z
d � Zej d
k7 rdd�Zndd�Zd
� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zy)�
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
Nc �� � || _ || _ || _ || _ || _ || _ |dk( r1t j j t
j � � }|| _
|| _ y )N�.)�system_site_packages�clear�symlinks�upgrade�with_pip�orig_prompt�os�path�basename�getcwd�prompt�upgrade_deps)�selfr r r
r r r r s �4/opt/alt/python312/lib64/python3.12/venv/__init__.py�__init__zEnvBuilder.__init__/ s` � � %9��!���
� ��
���� ��
�!����S�=��W�W�%�%�b�i�i�k�2�F����(��� c �� � t j j |� }| j |� }| j }d| _ | j |� | j
|� | j r| j |� | j s"| j |� | j |� |rd| _ | j |� | j r| j |� yy)z�
Create a virtual environment in a directory.
:param env_dir: The target directory to create an environment in.
FTN)r r �abspath�ensure_directoriesr �create_configuration�setup_pythonr �
_setup_pipr �
setup_scripts�
post_setupr �upgrade_dependencies)r �env_dir�context�true_system_site_packagess r �createzEnvBuilder.create= s� � � �'�'�/�/�'�*���)�)�'�2�� %)�$=�$=�!�$)��!��!�!�'�*����'�"��=�=��O�O�G�$��|�|����w�'��O�O�G�$�$� )-�D�%��%�%�g�.�����%�%�g�.� r c � � t j |� D ]� }t j j ||� }t j j |� st j j |� rt j |� �wt j j |� s��t j |� �� y �N)
r �listdirr �join�islink�isfile�remove�isdir�shutil�rmtree)r r �fns r �clear_directoryzEnvBuilder.clear_directoryY so � ��*�*�T�"�B������d�B�'�B��w�w�~�~�b�!�R�W�W�^�^�B�%7�� � �"�
������r�"��
�
�b�!� #r c �@ � ||||d�}t j |d|�� S )N)�base�platbase�installed_base�installed_platbase�venv)�scheme�vars)� sysconfig�get_path)r r! �namer8 s r �
_venv_pathzEnvBuilder._venv_patha s, � ���%�")�
�� �!�!�$�v�D�A�Ar c � � t j dk( r�t j j |� t j j |� k( ryddl} |j
t j |� � } |j
t j |� � }t j j |� t j j |� k( ryy||k( S # t $ r Y �vw xY w# t $ r Y �`w xY w)z�Check whether two paths appear the same.
Whether they refer to the same file is irrelevant; we're testing for
whether a human reader would look at the path string and easily tell
that they're the same file.
�win32Tr NF) �sys�platformr r �normcase�_winapi�GetLongPathName�fsdecode�OSError)�cls�path1�path2rB s r �
_same_pathzEnvBuilder._same_pathj s� � � �<�<�7�"��w�w����&�"�'�'�*:�*:�5�*A�A���
��/�/����E�0B�C��
��/�/����E�0B�C�� �w�w����&�"�'�'�*:�*:�5�*A�A����E�>�!�� �
��
�� �
��
�s$ �$C( �>$C7 �( C4�3C4�7 D�Dc �x � d� }t j t j |� v r t d|� dt j � d�� �t j j |� r| j r| j |� t j � }||_
t j j |� d |_ | j �| j n|j }d|z |_
||� t j }|st d� �t j j t j j! |� � \ }}||_ ||_ ||_ | j) |d� }| j) |d � } | j) |d
� }
| |_ || � |
|_ ||
� t j. dkD r{t j0 dk( rht j2 d
k7 rUt j j5 |d� }t j j |� st j6 d|� ||_ t j j; ||� |_ t j j5 ||� |_ ||� |j>