§
    øyIf\  ã                  óâ   — d Z ddlmZ ddlZddlZddlmZ ddlmZm	Z	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m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  G d„ de¦  «        Z dS )zpDeclare the abstract base class for tox environments that handle the Python language via the virtualenv project.é    )ÚannotationsN)ÚPath)ÚTYPE_CHECKINGÚAnyÚcast)Ú__version__)Úsession_via_cli)Ú
StrConvert)ÚLocalSubProcessExecutor)ÚPythonÚ
PythonInfo)ÚPip)ÚCreator)ÚSession)ÚExecute)ÚToxEnvCreateArgsc                  ó,  ‡ — e Zd ZdZd%ˆ fd„Zd&ˆ fd„Zed'd	„¦   «         Zed(d„¦   «         Zd)ˆ fd„Z	d)ˆ fd„Z
d*ˆ fd„Zd+ˆ fd„Zed,d„¦   «         Zd+d„Zed-d„¦   «         Zd&d„Zd.d„Zd/d„Zd0d„Zd0d „Zd0d!„Zed1d#„¦   «         Zed+ˆ fd$„¦   «         Zˆ xZS )2Ú
VirtualEnvz<A python executor that uses the virtualenv project with pip.Úcreate_argsr   ÚreturnÚNonec                ót   •— d | _         d | _        d | _        t          ¦   «                              |¦  «         d S ©N)Ú_virtualenv_sessionÚ	_executorÚ
_installerÚsuperÚ__init__)Úselfr   Ú	__class__s     €úV/var/www/piapp/venv/lib/python3.11/site-packages/tox/tox_env/python/virtual_env/api.pyr   zVirtualEnv.__init__   s7   ø€ Ø37ˆÔ Ø)-ˆŒØ&*ˆŒÝ‰Œ×Ò˜Ñ%Ô%Ð%Ð%Ð%ó    c                ó8  •‡ — t          ¦   «                              ¦   «          ‰ j                             ddgt          ˆ fd„d¬¦  «         ‰ j                             ddgt          ˆ fd„d	¬¦  «         ‰ j                             d
gt          ˆ fd„d¬¦  «         d S )NÚsystem_site_packagesÚsitepackagesc                óx   •— t          ¦   «                              ‰j                             dd¦  «        ¦  «        S )NÚVIRTUALENV_SYSTEM_SITE_PACKAGESÚFalse©r
   Úto_boolÚenvironment_variablesÚget©ÚconfÚnamer   s     €r!   ú<lambda>z,VirtualEnv.register_config.<locals>.<lambda>(   s3   ø€ ¥z¡|¤|×';Ò';ØÔ*×.Ò.Ð/PÐRYÑZÔZñ(ô (€ r"   zQcreate virtual environments that also have access to globally installed packages.)ÚkeysÚof_typeÚdefaultÚdescÚalways_copyÚ
alwayscopyc           	     óª   •— t          ¦   «                              ‰j                             d‰j                             dd¦  «        ¦  «        ¦  «        S )NÚVIRTUALENV_COPIESÚVIRTUALENV_ALWAYS_COPYr(   r)   r-   s     €r!   r0   z,VirtualEnv.register_config.<locals>.<lambda>0   sK   ø€ ¥z¡|¤|×';Ò';ØÔ*×.Ò.Ø'ØÔ.×2Ò2Ð3KÈWÑUÔUñô ñ(ô (€ r"   z3force virtualenv to always copy rather than symlinkÚdownloadc                óx   •— t          ¦   «                              ‰j                             dd¦  «        ¦  «        S )NÚVIRTUALENV_DOWNLOADr(   r)   r-   s     €r!   r0   z,VirtualEnv.register_config.<locals>.<lambda>;   s2   ø€ ¥z¡|¤|×';Ò';ØÔ*×.Ò.Ð/DÀgÑNÔNñ(ô (€ r"   zQtrue if you want virtualenv to upgrade pip/wheel/setuptools to the latest version)r   Úregister_configr.   Ú
add_configÚbool)r   r    s   `€r!   r=   zVirtualEnv.register_config#   sñ   øø€ Ý‰Œ×ÒÑ!Ô!Ð!ØŒ	×ÒØ(¨.Ð9Ýðð ð ð ð eð 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ Ð.Ýðð ð ð ð Gð 	ñ 
	
ô 
	
ð 
	
ð 	Œ	×ÒØ�Ýðð ð ð ð eð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r"   r   c                óZ   — | j         €t          | j        j        ¦  «        | _         | j         S r   )r   r   ÚoptionsÚ
is_colored©r   s    r!   ÚexecutorzVirtualEnv.executorA   s&   € àŒ>Ð!Ý4°T´\Ô5LÑMÔMˆDŒNØŒ~Ðr"   r   c                óF   — | j         €t          | ¦  «        | _         | j         S r   )r   r   rC   s    r!   Ú	installerzVirtualEnv.installerG   s   € àŒ?Ð"Ý! $™iœiˆDŒOØŒÐr"   údict[str, Any]c                ó¼   •— t          ¦   «                              ¦   «         }|                     t          | j        j        d         ¦  «        t          dœ¦  «         |S )NÚ
executable)rI   zvirtualenv version)r   Úpython_cacheÚupdateÚstrÚbase_pythonÚextraÚvirtualenv_version©r   Úbaser    s     €r!   rJ   zVirtualEnv.python_cacheM   sX   ø€ Ý‰wŒw×#Ò#Ñ%Ô%ˆØ�Šå! $Ô"2Ô"8¸Ô"FÑGÔGÝ&8ðð ñ	
ô 	
ð 	
ð ˆr"   c                óŒ   •— t          ¦   «                              ¦   «         }t          | j        j        d         ¦  «        |d<   |S )NrI   )r   Ú_get_env_journal_pythonrL   rM   rN   rP   s     €r!   rS   z"VirtualEnv._get_env_journal_pythonW   s:   ø€ Ý‰wŒw×.Ò.Ñ0Ô0ˆÝ  Ô!1Ô!7¸Ô!EÑFÔFˆˆ\ÑØˆr"   ú	list[str]c                óœ   •— t          ¦   «                              ¦   «         }|                     d¦  «         |                     d¦  «         |S )NzPIP_*zVIRTUALENV_*)r   Ú_default_pass_envÚappend©r   Úenvr    s     €r!   rV   zVirtualEnv._default_pass_env\   sA   ø€ Ý‰gŒg×'Ò'Ñ)Ô)ˆØ�
Š
�7ÑÔÐØ�
Š
�>Ñ"Ô"Ð"Øˆ
r"   údict[str, str]c                óR   •— t          ¦   «                              ¦   «         }d|d<   |S )NÚ1ÚPIP_DISABLE_PIP_VERSION_CHECK)r   Ú_default_set_envrX   s     €r!   r^   zVirtualEnv._default_set_envb   s(   ø€ Ý‰gŒg×&Ò&Ñ(Ô(ˆØ/2ˆÐ+Ñ,Øˆ
r"   r   c                ó    — | j         €At          | j        ¦  «        g}|                      ¦   «         }t	          |d d|¬¦  «        | _         | j         S )NF)rA   Úsetup_loggingrY   )r   rL   Úenv_dirÚvirtualenv_env_varsr	   )r   ra   rY   s      r!   ÚsessionzVirtualEnv.sessiong   sR   € àÔ#Ð+Ý˜4œ<Ñ(Ô(Ð)ˆGØ×*Ò*Ñ,Ô,ˆCÝ'6°wÈÐ\aÐgjÐ'kÑ'kÔ'kˆDÔ$ØÔ'Ð'r"   c                óÎ  — | j                              ¦   «         }| j        d         }d|vrd|d<   d|d<   t          | j        d         ¦  «        |d<   t          | j        d         ¦  «        |d	<   t          | j        d
         ¦  «        |d<   d                     |¦  «        |d<   t          | j        d¦  «        r,t          j                             | j        j	        ¦  «        |d<   |S )NrM   ÚVIRTUALENV_NO_PERIODIC_UPDATEÚTruer(   ÚVIRTUALENV_CLEARr$   r'   r5   r8   r:   r<   ú
ÚVIRTUALENV_PYTHONÚdiscoverÚVIRTUALENV_TRY_FIRST_WITH)
r+   Úcopyr.   rL   ÚjoinÚhasattrrA   ÚosÚpathseprj   )r   rY   rM   s      r!   rb   zVirtualEnv.virtualenv_env_varso   sá   € ØÔ(×-Ò-Ñ/Ô/ˆØ!%¤¨=Ô!9ˆØ*°#Ð5Ð5Ø39ˆCÐ/Ñ0Ø")ˆÐÑÝ14°T´YÐ?UÔ5VÑ1WÔ1WˆÐ-Ñ.Ý#& t¤y°Ô'?Ñ#@Ô#@ˆÐÑ Ý%(¨¬°:Ô)>Ñ%?Ô%?ˆÐ!Ñ"Ø#'§9¢9¨[Ñ#9Ô#9ˆÐÑ Ý�4”< Ñ,Ô,ð 	VÝ/1¬z¯ª¸t¼|Ô?TÑ/UÔ/UˆCÐ+Ñ,Øˆ
r"   r   c                ó   — | j         j        S r   )rc   ÚcreatorrC   s    r!   rr   zVirtualEnv.creator}   s   € àŒ|Ô#Ð#r"   c                ó8   — | j                              ¦   «          d S r   )rc   ÚrunrC   s    r!   Úcreate_python_envzVirtualEnv.create_python_env�   s   € ØŒ×ÒÑÔÐÐÐr"   rM   úPythonInfo | Nonec                óþ   — 	 | j         j        }n# t          t          f$ r Y d S w xY wt	          |j        |j        |j        |j        dk    |j	        dt          |j        ¦  «                             ¦   «         i¬¦  «        S )Né@   rI   )ÚimplementationÚversion_infoÚversionÚis_64ÚplatformrN   )rr   ÚinterpreterÚFileNotFoundErrorÚRuntimeErrorr   ry   rz   r{   Úarchitecturer}   r   Úsystem_executableÚresolve)r   rM   r~   s      r!   Ú_get_pythonzVirtualEnv._get_python„   s“   € ð	Øœ,Ô2ˆKˆKøÝ!¥<Ð0ð 	ð 	ð 	Ø�4�4ð	øøøåØ&Ô5Ø$Ô1ØÔ'ØÔ+¨rÒ1Ø Ô)Ø¥ kÔ&CÑ!DÔ!D×!LÒ!LÑ!NÔ!NÐOð
ñ 
ô 
ð 	
s   ‚ �$£$ú
list[Path]c                ó|   — t          t                               | j        j        | j        j        f¦  «        ¦  «        S )zPaths to add to the executable.)ÚlistÚdictÚfromkeysrr   Úbin_dirÚ
script_dirrC   s    r!   Úprepend_env_var_pathzVirtualEnv.prepend_env_var_path“   s-   € õ •D—M’M 4¤<Ô#7¸¼Ô9PÐ"QÑRÔRÑSÔSÐSr"   r   c                ó@   — t          t          | j        j        ¦  «        S r   )r   r   rr   ÚpurelibrC   s    r!   Úenv_site_package_dirzVirtualEnv.env_site_package_dir˜   s   € Ý•D˜$œ,Ô.Ñ/Ô/Ð/r"   c                ó@   — t          t          | j        j        ¦  «        S r   )r   r   rr   ÚexerC   s    r!   Ú
env_pythonzVirtualEnv.env_python›   s   € Ý•D˜$œ,Ô*Ñ+Ô+Ð+r"   c                ó@   — t          t          | j        j        ¦  «        S r   )r   r   rr   r‹   rC   s    r!   Úenv_bin_dirzVirtualEnv.env_bin_dirž   s   € Ý•D˜$œ,Ô1Ñ2Ô2Ð2r"   rL   c                ó   — t           j        S r   )Úsysr}   rC   s    r!   Úruns_on_platformzVirtualEnv.runs_on_platform¡   s
   € åŒ|Ðr"   c                óh   •— t          ¦   «         j        }t          | j        d         ¦  «        |d<   |S )Nra   ÚVIRTUAL_ENV)r   r+   rL   r.   )r   r+   r    s     €r!   r+   z VirtualEnv.environment_variables¥   s0   ø€ å %¡¤Ô =ÐÝ/2°4´9¸YÔ3GÑ/HÔ/HÐ˜mÑ,Ø$Ð$r"   )r   r   r   r   )r   r   )r   r   )r   r   )r   rG   )r   rT   )r   rZ   )r   r   )r   r   )rM   rT   r   rv   )r   r…   )r   r   )r   rL   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r=   ÚpropertyrD   rF   rJ   rS   rV   r^   rc   rb   rr   ru   r„   rŒ   r�   r’   r”   r—   r+   Ú__classcell__)r    s   @r!   r   r      s3  ø€ € € € € ØFÐFð&ð &ð &ð &ð &ð &ð
ð 
ð 
ð 
ð 
ð 
ð< ðð ð ñ „Xðð
 ðð ð ñ „Xðð
ð ð ð ð ð ðð ð ð ð ð ð
ð ð ð ð ð ðð ð ð ð ð ð
 ð(ð (ð (ñ „Xð(ðð ð ð ð ð$ð $ð $ñ „Xð$ðð ð ð ð
ð 
ð 
ð 
ðTð Tð Tð Tð
0ð 0ð 0ð 0ð,ð ,ð ,ð ,ð3ð 3ð 3ð 3ð ðð ð ñ „Xðð ð%ð %ð %ð %ð %ñ „Xð%ð %ð %ð %ð %r"   r   )!r�   Ú
__future__r   ro   r–   Úpathlibr   Útypingr   r   r   Ú
virtualenvr   rO   r	   Útox.config.loader.str_convertr
   Útox.execute.local_sub_processr   Útox.tox_env.python.apir   r   Ú"tox.tox_env.python.pip.pip_installr   Úvirtualenv.create.creatorr   Úvirtualenv.run.sessionr   Útox.execute.apir   Útox.tox_env.apir   r   © r"   r!   ú<module>r­      s_  ðØ vÐ và "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø &Ð &Ð &Ð &Ð &Ð &à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø AÐ AÐ AÐ AÐ AÐ AØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2àð 1Ø1Ð1Ð1Ð1Ð1Ð1Ø.Ð.Ð.Ð.Ð.Ð.à'Ð'Ð'Ð'Ð'Ð'Ø0Ð0Ð0Ð0Ð0Ð0ðO%ð O%ð O%ð O%ð O%�ñ O%ô O%ð O%ð O%ð O%r"   