File: //lib/python3.12/venv/__pycache__/__init__.cpython-312.pyc
�
    )!�h{g  �                   �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� Zd� Zd� Z	e
j                  d	k7  rdd
�Zndd�Zd� Z
d
� 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           �$/usr/lib/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   st   � ��*�*�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                 ��  � 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>