o
    Wi                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ er>d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d d	lmZ ejd
krJd dlmZ nd dlmZ eeZG dd dZdZG dd dZdgZdS )    )annotationsN)TYPE_CHECKING)TracebackType)
PythonInfo)	Activator)AppData)Creator)Seeder)      )Selfc                   @  s   e Zd ZdZd0ddZed1ddZed2ddZed3ddZed4ddZ	ed5ddZ
d6ddZd6ddZd6d d!Zd6d"d#Zd7d%d&Zd8d-d.Zd/S )9Sessionz2Represents a virtual environment creation session.	verbosityintapp_datar   interpreterr   creatorr   seederr	   
activatorslist[Activator]returnNonec                 C  s(   || _ || _|| _|| _|| _|| _d S N)
_verbosity	_app_data_interpreter_creator_seeder_activators)selfr   r   r   r   r   r    r    J/home/ubuntu/.local/lib/python3.10/site-packages/virtualenv/run/session.py__init__   s   	
zSession.__init__c                 C     | j S )zThe verbosity of the run.)r   r   r    r    r!   r   -      zSession.verbosityc                 C  r#   )zACreate a virtual environment based on this reference interpreter.)r   r$   r    r    r!   r   2   r%   zSession.interpreterc                 C  r#   )z\The creator used to build the virtual environment (must be compatible with the interpreter).)r   r$   r    r    r!   r   7   r%   zSession.creatorc                 C  r#   )zIThe mechanism used to provide the seed packages (pip, setuptools, wheel).)r   r$   r    r    r!   r   <   r%   zSession.seederc                 C  r#   )z0Activators used to generate activations scripts.)r   r$   r    r    r!   r   A   r%   zSession.activatorsc                 C  s(   |    |   |   | jj  d S r   )_create_seed	_activater   	pyenv_cfgwriter$   r    r    r!   runF   s   zSession.runc                 C  s8   t d| j | j  t t t dt| j d S )Nz!create virtual environment via %sz%s)LOGGERinfor   r+   debug_DEBUG_MARKER_Debugr$   r    r    r!   r&   L   s   

zSession._createc                 C  s:   | j d ur| j jrtd| j  | j | j d S d S d S )Nzadd seed packages via %s)r   enabledr,   r-   r+   r   r$   r    r    r!   r'   R   s   zSession._seedc                 C  sH   | j r ddd | j D }td| | j D ]
}|| j qd S d S )Nz, c                 s  s"    | ]}t |jd dV  qdS )r    N)type__name__replace).0ir    r    r!   	<genexpr>Y   s     z$Session._activate.<locals>.<genexpr>zadd activators for %s)r   joinr,   r-   generater   )r   active	activatorr    r    r!   r(   W   s   
zSession._activater   c                 C  s   | S r   r    r$   r    r    r!   	__enter__^   s   zSession.__enter__exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonec                 C  s   | j   d S r   )r   close)r   r>   r@   rB   r    r    r!   __exit__a   s   zSession.__exit__N)r   r   r   r   r   r   r   r   r   r	   r   r   r   r   )r   r   )r   r   )r   r   )r   r	   )r   r   )r   r   )r   r   )r>   r?   r@   rA   rB   rC   r   r   )r4   
__module____qualname____doc__r"   propertyr   r   r   r   r   r+   r&   r'   r(   r=   rE   r    r    r    r!   r      s&    





r   zJ============================== target debug ==============================c                   @  s$   e Zd ZdZdddZdd	d
ZdS )r0   zlazily populate debug.r   r   r   r   c                 C  s
   || _ d S r   )r   )r   r   r    r    r!   r"   p   s   
z_Debug.__init__strc                 C  s   t j| jjddS )N   )indent)jsondumpsr   r.   r$   r    r    r!   __repr__s   s   z_Debug.__repr__N)r   r   r   r   )r   rJ   )r4   rF   rG   rH   r"   rO   r    r    r    r!   r0   m   s    
r0   )
__future__r   rM   loggingsystypingr   typesr   python_discoveryr   virtualenv.activation.activatorr   virtualenv.app_data.baser   virtualenv.create.creatorr   virtualenv.seed.seederr	   version_infor   typing_extensions	getLoggerr4   r,   r   r/   r0   __all__r    r    r    r!   <module>   s*    

P