§
    øyIf”O  ã                  óÈ  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
mZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZm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$ er: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/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9  ej:        e;¦  «        Z< G d„ de¦  «        Z= G d„ de
¦  «        Z> ej?        ¦   «         Z@dS )z6Defines the abstract base traits of a tox environment.é    )ÚannotationsN)ÚABCÚabstractmethod)Úcontextmanager)ÚBytesIO)ÚPath)ÚTYPE_CHECKINGÚAnyÚIteratorÚListÚ
NamedTupleÚSequenceÚSetÚcast)ÚExecuteRequest)ÚFailÚRecreateÚSkip)ÚInfo)Úensure_empty_dir)ÚParsed)ÚConfig)ÚSetEnv)ÚCoreConfigSetÚEnvConfigSet)ÚExecuteÚExecuteStatusÚOutcomeÚStdinSource)Ú
EnvJournal)ÚOutErrÚ
ToxHandler)Ú	Installerc                  óF   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dS )ÚToxEnvCreateArgsz5Arguments to pass on when creating a tox environment.r   Úconfr   Úcorer   Úoptionsr    Újournalr"   Úlog_handlerN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    úC/var/www/piapp/venv/lib/python3.11/site-packages/tox/tox_env/api.pyr%   r%   #   sQ   € € € € € € Ø?Ð?àÐÐÑØÐÐÑØ€O€O�OØÐÐÑØÐÐÑÐÐr1   r%   c                  ó  — e Zd ZdZd^d„Zed_d„¦   «         Zeed`d
„¦   «         ¦   «         Z	eedad„¦   «         ¦   «         Z
eedbd„¦   «         ¦   «         Zdcd„Zd`d„Zddd„Zded„Zedfd„¦   «         Zedfd„¦   «         Zedfd„¦   «         Zed`d „¦   «         Zdgd"„Zdhd$„Zddd%„Zddd&„Zddd'„Zddd(„Zeed`d)„¦   «         ¦   «         Zddd*„Zddd+„Zddd,„Zddd-„Zddd.„Zdidjd1„Z edgd2„¦   «         Z!edkd4„¦   «         Z"edld6„¦   «         Z#e#j$        dmd7„¦   «         Z#edhd8„¦   «         Z%d`d9„Z&	 	 	 	 dndodH„Z'dddI„Z(e)	 	 	 	 dndpdK„¦   «         Z*dqdP„Z+edrdS„¦   «         Z,e)dsdV„¦   «         Z-e)dtdY„¦   «         Z.dud[„Z/e)dvd\„¦   «         Z0edwd]„¦   «         Z1d:S )xÚToxEnvzA tox environment.Úcreate_argsr%   ÚreturnÚNonec                ó  — |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        ddddœ| _        g | _        g | _        d| _        g | _	        d| _
        i | _        d| _        d| _        dS )z`
        Create a new tox environment.

        :param create_args: tox env create args
        F)ÚsetupÚcleanÚteardownNr   )r)   r&   r'   r(   r*   Ú
_run_stateÚ_paths_privateÚ_hidden_outcomesÚ	_env_varsÚ_env_vars_pass_envÚ_suspended_out_errÚ_execute_statusesÚ_interruptedÚ_log_id)Úselfr5   s     r2   Ú__init__zToxEnv.__init__0   sŒ   € ð $/Ô#6ˆŒØ"-Ô"2ˆŒ	Ø#.Ô#3ˆŒ	Ø*Ô2ˆŒØ'2Ô'>ˆÔð %*°EÀuÐMÐMˆŒØ*,ˆÔØ68ˆÔØ04ˆŒØ-/ˆÔØ15ˆÔØ;=ˆÔØ!ˆÔØˆŒˆˆr1   r   c                ó*   — t          | j        ¦  «        S ©N)r   Úenv_dir©rE   s    r2   ÚcachezToxEnv.cacheG   s   € å�D”LÑ!Ô!Ð!r1   Ústrc                 ó   — t           ‚rH   ©ÚNotImplementedErrorr0   r1   r2   Úidz	ToxEnv.idK   ó
   € õ "Ð!r1   r   c                ó   — t           ‚rH   rN   rJ   s    r2   ÚexecutorzToxEnv.executorP   rQ   r1   úInstaller[Any]c                ó   — t           ‚rH   rN   rJ   s    r2   Ú	installerzToxEnv.installerU   rQ   r1   Ú	argumentsr
   ÚsectionÚof_typec                óz   — ddl m} |                     | |||¦  «         | j                             |||¦  «         d S )Nr   ©ÚMANAGER)Útox.plugin.managerr\   Útox_on_installrV   Úinstall)rE   rW   rX   rY   r\   s        r2   Ú_installzToxEnv._installZ   sN   € Ø.Ð.Ð.Ð.Ð.Ð.à×Ò˜t Y°¸ÑAÔAÐAØŒ×Ò˜y¨'°7Ñ;Ô;Ð;Ð;Ð;r1   c                ó<   — | j         j        › d| j        d         › d�S )Nz(name=Úenv_nameú))Ú	__class__r+   r&   rJ   s    r2   Ú__repr__zToxEnv.__repr__`   s%   € Ø”.Ô)ÐIÐI°´¸:Ô1FÐIÐIÐIÐIr1   c                óÐ  ‡ — ‰ j                              ddgd‰ j         j        ¬¦  «         ‰ j                              dgt          t
                   t          ¦   «         d¬¦  «         ‰ j                              dd	gt          ˆ fd
„d¬¦  «         ‰ j                              ddgt          ˆ fd„d¬¦  «         ‰ j                              ddgt          ˆ fd„d¬¦  «         ‰ j         	                    ‰ ¦  «         ‰ j
        ‰ j         _        ‰ j                              dgt
          dd¬¦  «         d'ˆ fd„}‰ j                              ddgt          t
                   g d|¬¦  «         ‰ j                              dt          d d!¬"¦  «         ‰ j                              d#t          ‰ j        d$¬"¦  «         ‰ j                              d%t          t
                   g d&¬"¦  «         ‰ j        €J ‚d S )(Nrb   Úenvnamezthe name of the tox environment)ÚkeysÚdescÚvalueÚlabelsz&labels attached to the tox environment)rh   rY   Údefaultri   rI   Úenvdirc                óT   •— t          t          | j        d         ¦  «        ‰j        z  S )NÚwork_dir©r   r   r'   Úname©r&   rq   rE   s     €r2   ú<lambda>z(ToxEnv.register_config.<locals>.<lambda>r   s   ø€ ¥t­D°$´)¸JÔ2GÑ'HÔ'HÈ4Ì9Ñ'T€ r1   z)directory assigned to the tox environmentÚenv_tmp_dirÚ	envtmpdirc                óZ   •— t          t          | j        d         ¦  «        ‰j        z  dz  S )Nro   Útmprp   rr   s     €r2   rs   z(ToxEnv.register_config.<locals>.<lambda>x   ó%   ø€ ¥t­D°$´)¸JÔ2GÑ'HÔ'HÈ4Ì9Ñ'TÐW\Ñ'\€ r1   z5a folder that is always reset at the start of the runÚenv_log_dirÚ	envlogdirc                óZ   •— t          t          | j        d         ¦  «        ‰j        z  dz  S )Nro   Úlogrp   rr   s     €r2   rs   z(ToxEnv.register_config.<locals>.<lambda>~   rx   r1   z?a folder for logging where tox will put logs of tool invocationÚplatformÚ zNrun on platforms that match this regular expression (empty means any platform)Úvaluesú	list[str]r6   c                ó‚  •‡— |                       ‰                     ¦   «         ¦  «         t          t                               | ¦  «                             ¦   «         ¦  «        }t          t          j        ¦  «        Šˆfd„|D ¦   «         }|r3d 	                    d„ |D ¦   «         ¦  «        }d|› �}t          |¦  «        ‚|S )Nc                óJ   •— g | ]}t          ˆfd „|D ¦   «         ¦  «        ¯|‘Œ S )c              3  ó    •K  — | ]}|‰v V — Œ	d S rH   r0   )Ú.0ÚcÚinvalid_charss     €r2   ú	<genexpr>zSToxEnv.register_config.<locals>.pass_env_post_process.<locals>.<listcomp>.<genexpr>Ž   s(   øè è € Ð/NÐ/NÀq°°]Ð0BÐ/NÐ/NÐ/NÐ/NÐ/NÐ/Nr1   ©Úany)r„   Úvr†   s     €r2   ú
<listcomp>zIToxEnv.register_config.<locals>.pass_env_post_process.<locals>.<listcomp>Ž   s;   ø€ ÐOÐOÐO˜Q­CÐ/NÐ/NÐ/NÐ/NÈAÐ/NÑ/NÔ/NÑ,NÔ,NÐO�qÐOÐOÐOr1   z, c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rH   )Úrepr©r„   Úis     r2   r‡   zHToxEnv.register_config.<locals>.pass_env_post_process.<locals>.<genexpr>�   s(   è è € Ð(BÐ(B°Q­¨a©¬Ð(BÐ(BÐ(BÐ(BÐ(BÐ(Br1   ztpass_env values cannot contain whitespace, use comma to have multiple values in a single line, invalid values found )ÚextendÚ_default_pass_envÚsortedÚdictÚfromkeysrh   ÚsetÚstringÚ
whitespaceÚjoinr   )r   ÚresultÚinvalidÚinvalid_reprÚmsgr†   rE   s        @€r2   Úpass_env_post_processz5ToxEnv.register_config.<locals>.pass_env_post_processŠ   sÁ   øø€ Ø�MŠM˜$×0Ò0Ñ2Ô2Ñ3Ô3Ð3Ý�DŸMšM¨&Ñ1Ô1×6Ò6Ñ8Ô8Ñ9Ô9ˆFÝ¥Ô 1Ñ2Ô2ˆMØOÐOÐOÐO &ÐOÑOÔOˆGØð  Ø#ŸyšyÐ(BÐ(B¸'Ð(BÑ(BÔ(BÑBÔB�ð<Ø-9ð<ð <ð õ ˜3‘i”i�ØˆMr1   Úpass_envÚpassenvz7environment variables to pass on to the tox environment)rh   rY   rl   ri   Úpost_processÚparallel_show_outputFz\if set to True the content of the output will always be shown  when running in parallel mode)rY   rl   ri   ÚrecreatezXalways recreate virtual environment if this option is true, otherwise leave it up to toxÚallowlist_externalsz&external command glob to allow calling)r   r€   r6   r€   )r&   Úadd_constantrq   Ú
add_configr   rL   r•   r   rS   Úregister_confÚ_default_set_envÚdefault_set_env_loaderr   ÚboolÚ_recreate_defaultrV   )rE   r�   s   ` r2   Úregister_configzToxEnv.register_configc   si  ø€ ØŒ	×ÒØ˜iÐ(Ø2Ø”)”.ð 	ñ 	
ô 	
ð 	
ð
 	Œ	×ÒØ�Ý�”HÝ‘E”EØ9ð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ˜XÐ&ÝØTÐTÐTÐTØ<ð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ Ð-ÝØ\Ð\Ð\Ð\ØHð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ Ð-ÝØ\Ð\Ð\Ð\ØRð	 	ñ 	
ô 	
ð 	
ð 	Œ×#Ò# DÑ)Ô)Ð)Ø+/Ô+@ˆŒ	Ô(ØŒ	×ÒØ�ÝØØað	 	ñ 	
ô 	
ð 	
ð	ð 	ð 	ð 	ð 	ð 	ð 	Œ	×ÒØ˜iÐ(Ý�”IØØJØ.ð 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ"ÝØØoð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØÝØÔ*Økð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ!Ý�”IØØ9ð	 	ñ 	
ô 	
ð 	
ð Œ~Ð)Ð)Ð)Ð)Ð)r1   r&   r   rj   ú
str | Noner©   c                ó@   — t          t          | j        j        ¦  «        S rH   )r   r©   r(   r¢   )rE   r&   rj   s      r2   rª   zToxEnv._recreate_default³   s   € Ý•D˜$œ,Ô/Ñ0Ô0Ð0r1   r   c                óB   — t          t          | j        d         ¦  «        S )z0:return: the tox environments environment folderrI   ©r   r   r&   rJ   s    r2   rI   zToxEnv.env_dir¶   s   € õ •D˜$œ) IÔ.Ñ/Ô/Ð/r1   c                óB   — t          t          | j        d         ¦  «        S )z):return: the tox environments temp folderrt   r¯   rJ   s    r2   rt   zToxEnv.env_tmp_dir»   ó   € õ •D˜$œ) MÔ2Ñ3Ô3Ð3r1   c                óB   — t          t          | j        d         ¦  «        S )z(:return: the tox environments log folderry   r¯   rJ   s    r2   ry   zToxEnv.env_log_dirÀ   r±   r1   c                óB   — t          t          | j        d         ¦  «        S )Nrb   )r   rL   r&   rJ   s    r2   rq   zToxEnv.nameÅ   s   € å•C˜œ :Ô.Ñ/Ô/Ð/r1   údict[str, str]c                ó   — i S rH   r0   rJ   s    r2   r§   zToxEnv._default_set_envÉ   s   € Øˆ	r1   r€   c                óî   — g d¢}t           j                             ¦   «         r|                     d¦  «         t           j        dk    r|                     g d¢¦  «         n|                     d¦  «         |S )N)Úhttps_proxyÚ
http_proxyÚno_proxyÚLANGÚLANGUAGEÚCURL_CA_BUNDLEÚSSL_CERT_FILEÚCCÚCFLAGSÚCCSHAREDÚCXXÚCPPFLAGSÚLD_LIBRARY_PATHÚLDFLAGSÚHOMEÚFORCE_COLORÚNO_COLORÚTERMÚwin32)ÚTEMPÚTMPÚUSERPROFILEÚPATHEXTÚMSYSTEMÚTMPDIR)ÚsysÚstdoutÚisattyÚappendr}   r�   )rE   Úenvs     r2   r‘   zToxEnv._default_pass_envÌ   s�   € ð
ð 
ð 
ˆõ& Œ:×ÒÑÔð 	Ø�JŠJ�vÑÔÐÝŒ<˜7Ò"Ð"Ø�JŠJðð ð ñô ð ð ð �JŠJ�xÑ Ô Ð Øˆ
r1   c                ó^  — | j         d         du �r|                      ¦   «          t          t          | j        d         ¦  «        }|r|                      d¬¦  «         	 |                      ¦   «          |                      ¦   «          |                      ¦   «          nw# t          $ rj}|s^t          j        d|j        d         ¦  «         |                      d¬¦  «         |                      ¦   «          |                      ¦   «          Y d}~nd}~ww xY wd| j         d<   dS # d| j         d<   w xY wdS )	zSetup the tox environment.r9   Fr¢   T)Ú
transitivezrecreate env because %sr   N)r<   Ú_platform_checkr   r©   r&   Ú_cleanÚ
_setup_envÚ_setup_with_envÚ_done_with_setupr   ÚloggingÚwarningÚargs)rE   r¢   Ú	exceptions      r2   r9   zToxEnv.setupð   sH  € àŒ?˜7Ô# uÐ,Ñ,Ø× Ò Ñ"Ô"Ð"Ý�D $¤)¨JÔ"7Ñ8Ô8ˆHØð -Ø—’ t�Ñ,Ô,Ð,ð0Ø—’Ñ!Ô!Ð!Ø×$Ò$Ñ&Ô&Ð&ð ×%Ò%Ñ'Ô'Ð'Ð'øõ ð +ð +ð +Øð +Ý”OÐ$=¸y¼~ÈaÔ?PÑQÔQÐQØ—K’K¨5�KÑ1Ô1Ð1Ø—O’OÑ%Ô%Ð%Ø×(Ò(Ñ*Ô*Ð*øøøøøøøøøð+øøøð ,0�” Ñ(Ð(Ð(ø¨4�” Ñ(Ð/Ð/Ð/Ð/ð# -Ð,s1   Á(B ÂD Â
DÂ%A D
ÄD Ä
DÄD ÄD*c                óì   — | j         d         sf	 |                      ¦   «          ddlm} |                     | ¦  «         d| j         d<   d S # ddlm} |                     | ¦  «         d| j         d<   w xY wd S )Nr;   r   r[   T)r<   Ú	_teardownr]   r\   Útox_env_teardown)rE   r\   s     r2   r;   zToxEnv.teardown  s©   € ØŒ˜zÔ*ð 	3ð3Ø—’Ñ Ô Ð à6Ð6Ð6Ð6Ð6Ð6à×(Ò(¨Ñ.Ô.Ð.Ø.2�” 
Ñ+Ð+Ð+øð 7Ð6Ð6Ð6Ð6Ð6à×(Ò(¨Ñ.Ô.Ð.Ø.2�” 
Ñ+Ð2Ð2Ð2Ð2ð	3ð 	3s   �A
 Á
'A1c                ó   — d S rH   r0   rJ   s    r2   rá   zToxEnv._teardown  ó   € Øˆr1   c                ó˜   — | j         d         }|r8t          j        || j        ¦  «        }|€d| j        › d|› �}t	          |¦  «        ‚dS dS )z&Skip env when platform does not match.r}   Nz	platform z does not match )r&   ÚreÚ	fullmatchÚruns_on_platformr   )rE   Úplatform_strÚmatchrœ   s       r2   r×   zToxEnv._platform_check  sa   € à œI jÔ1ˆØð 	 Ý”L ¨tÔ/DÑEÔEˆEØˆ}ØW $Ô"7ÐWÐWÈÐWÐW�Ý˜3‘i”i�ð		 ð 	 àˆ}r1   c                ó   — t           ‚rH   rN   rJ   s    r2   rè   zToxEnv.runs_on_platform  rQ   r1   c                óR  — | j         j        t          | ¦  «        j        dœ}| j                             |t          j        ¦  «        5 \  }}|du r|�d|› d|› �}t          |¦  «        ‚ddd¦  «         n# 1 swxY w Y   |                      ¦   «          |  	                    ¦   «          dS )zT
        1. env dir exists
        2. contains a runner with the same type.
        )rq   ÚtypeFNzenv type changed from z to )
r&   rq   rí   r+   rK   Úcomparer4   r   Ú_handle_env_tmp_dirÚ_handle_core_tmp_dir)rE   r&   ÚeqÚoldrœ   s        r2   rÙ   zToxEnv._setup_env   sè   € ð
 œ	œµ°T±
´
Ô0CÐDÐDˆØŒZ×Ò ¥f¤oÑ6Ô6ð 	$¹)¸2¸sØ�Uˆ{ˆ{˜s˜Ø>¨sÐ>Ð>¸Ð>Ð>�Ý˜s‘m”mÐ#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	× Ò Ñ"Ô"Ð"Ø×!Ò!Ñ#Ô#Ð#Ð#Ð#s   Á!A4Á4A8Á;A8c                ó   — d S rH   r0   rJ   s    r2   rÚ   zToxEnv._setup_with_env-  rä   r1   c                ó   — dS )zCalled when setup is done.Nr0   rJ   s    r2   rÛ   zToxEnv._done_with_setup0  s   € € € r1   c                ó  — | j         }|                     ¦   «         rLt          |                     ¦   «         d¦  «        �*t                               d|¦  «         t          |¦  «         |                     dd¬¦  «         dS )zEnsure exists and empty.Nzclear env temp folder %sT©ÚparentsÚexist_ok)rt   ÚexistsÚnextÚiterdirÚLOGGERÚdebugr   Úmkdir)rE   rt   s     r2   rï   zToxEnv._handle_env_tmp_dir3  s{   € àÔ&ˆØ×ÒÑÔð 	*¥D¨×)<Ò)<Ñ)>Ô)>ÀÑ$EÔ$EÐ$QÝ�LŠLÐ3°[ÑAÔAÐAÝ˜[Ñ)Ô)Ð)Ø×Ò $°ÐÑ6Ô6Ð6Ð6Ð6r1   c                óJ   — | j         d                              dd¬¦  «         d S )NÚtemp_dirTrö   )r'   rþ   rJ   s    r2   rð   zToxEnv._handle_core_tmp_dir;  s(   € ØŒ	�*Ô×#Ò#¨D¸4Ð#Ñ@Ô@Ð@Ð@Ð@r1   FrÖ   c                ó,  — | j         d         rd S | j        }|                     ¦   «         r,t                               d|¦  «         t          |d¬¦  «         d| _        | j                             ¦   «          | j          	                    dddœ¦  «         d S )	Nr:   zremove tox env folder %sz	file.lock)Úexcept_filenamer   FT)r9   r:   )
r<   rI   rù   rü   rÝ   r   rD   rK   ÚresetÚupdate)rE   rÖ   rI   s      r2   rØ   zToxEnv._clean>  s—   € ØŒ?˜7Ô#ð 	ØˆFØ”,ˆØ�>Š>ÑÔð 	CÝ�NŠNÐ5°wÑ?Ô?Ð?Ý˜W°kÐBÑBÔBÐBØˆŒØŒ
×ÒÑÔÐØŒ×Ò¨¸Ð>Ð>Ñ?Ô?Ð?Ð?Ð?r1   c                óä  — | j         d         }| j         d         }| j        |k    r|j        s| j        �| j        S |                      |¦  «        }||                     ¦   «         dc| _        | _        |_        |                      ¦   «         |d<   |D ]}|                     |¦  «        ||<   Œ| j        |d<   t          | j
        d         ¦  «        |d<   t          | j         d         ¦  «        |d	<   |S )
Nrž   Úset_envFÚPATHÚTOX_ENV_NAMEro   ÚTOX_WORK_DIRrI   ÚTOX_ENV_DIR)r&   r@   Úchangedr?   Ú_load_pass_envÚcopyÚ
_make_pathÚloadrq   rL   r'   )rE   rž   r  r™   Úkeys        r2   Úenvironment_variableszToxEnv.environment_variablesI  sí   € à"œi¨
Ô3ˆØœ) IÔ.ˆØÔ" hÒ.Ð.°w´Ð.È4Ì>ÐKeØ”>Ð!à×$Ò$ XÑ.Ô.ˆàCIÈ8Ï=Ê=É?Ì?Ð\aÐ@ˆŒ˜Ô/°´àŸšÑ*Ô*ˆˆv‰Øð 	,ð 	,ˆCØ!Ÿ,š, sÑ+Ô+ˆF�3‰KˆKØ!%¤ˆˆ~ÑÝ!$ T¤Y¨zÔ%:Ñ!;Ô!;ˆˆ~ÑÝ # D¤I¨iÔ$8Ñ 9Ô 9ˆˆ}ÑØˆr1   rž   c                ót   ‡— d„ | D ¦   «         Šˆfd„t           j                             ¦   «         D ¦   «         }|S )Nc                óp   — g | ]3}t          j        t          j        |¦  «        t           j        ¦  «        ‘Œ4S r0   )ræ   ÚcompileÚfnmatchÚ	translateÚ
IGNORECASE)r„   Úes     r2   r‹   z)ToxEnv._load_pass_env.<locals>.<listcomp>^  s1   € ÐVÐVÐVÈ•B”J�wÔ0°Ñ3Ô3µR´]ÑCÔCÐVÐVÐVr1   c                óT   •‡— i | ]#\  Š}t          ˆfd „‰D ¦   «         ¦  «        ¯ ‰|“Œ$S )c              3  óB   •K  — | ]}|                      ‰¦  «        V — Œd S rH   )rê   )r„   Úpr  s     €r2   r‡   z3ToxEnv._load_pass_env.<locals>.<dictcomp>.<genexpr>_  s/   øè è € ÐLjÐLjÐ\]ÈQÏWÊWÐUVÉZÌZÐLjÐLjÐLjÐLjÐLjÐLjr1   rˆ   )r„   rŠ   r  Úpatternss     @€r2   ú
<dictcomp>z)ToxEnv._load_pass_env.<locals>.<dictcomp>_  sC   øø€ Ð!kÐ!kÐ!k©4¨1¨aÍÐLjÐLjÐLjÐLjÐaiÐLjÑLjÔLjÑIjÔIjÐ!k ! QÐ!kÐ!kÐ!kr1   )ÚosÚenvironÚitems)rž   r™   r  s     @r2   r  zToxEnv._load_pass_env\  sB   ø€ àVÐVÈXÐVÑVÔVˆØ!kÐ!kÐ!kÐ!kµ2´:×3CÒ3CÑ3EÔ3EÐ!kÑ!kÔ!kˆØˆr1   ú
list[Path]c                ó   — | j         S rH   )r=   rJ   s    r2   Ú_pathszToxEnv._pathsb  s   € àÔ"Ð"r1   c                ób   — || _         | j        � |                      ¦   «         }|| j        d<   d S d S )Nr  )r=   r?   r  )rE   rj   r™   s      r2   r#  zToxEnv._pathsf  s;   € à#ˆÔàŒ>Ð%à—_’_Ñ&Ô&ˆFØ%+ˆDŒN˜6Ñ"Ð"Ð"ð &Ð%r1   c                ó|   — d„ | j         D ¦   «         }|                     d„ | j        d         D ¦   «         ¦  «         |S )Nc                ó0   — g | ]}|› t           j        › d �‘ŒS )Ú*)r  ÚseprŽ   s     r2   r‹   z+ToxEnv._allow_externals.<locals>.<listcomp>q  s$   € ÐBÐBÐB° ˜_¥2¤6˜_˜_˜_ÐBÐBÐBr1   c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rH   )ÚstriprŽ   s     r2   r‡   z*ToxEnv._allow_externals.<locals>.<genexpr>r  s*   è è € ÐJÐJ A�a—g’g‘i”iÐJÐJÐJÐJÐJÐJr1   r£   )r#  r�   r&   )rE   r™   s     r2   Ú_allow_externalszToxEnv._allow_externalso  sE   € àBÐB°d´kÐBÑBÔBˆØ�ŠÐJÐJ¨¬Ð3HÔ)IÐJÑJÔJÑJÔJÐJØˆr1   c                ób  — t                                d„ | j        D ¦   «         ¦  «        }|                     t                                t          j                             dd¦  «                             t          j        ¦  «        ¦  «        ¦  «         t          j         	                    |¦  «        S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S rH   )rL   rŽ   s     r2   r‡   z$ToxEnv._make_path.<locals>.<genexpr>v  s(   è è € Ð;Ð;¨!�s 1™vœvÐ;Ð;Ð;Ð;Ð;Ð;r1   r  r~   )
r“   r”   r#  r  r  r  ÚgetÚsplitÚpathsepr˜   )rE   r   s     r2   r  zToxEnv._make_pathu  sv   € Ý—’Ð;Ð;¨t¬{Ð;Ñ;Ô;Ñ;Ô;ˆØ�Š•d—m’m¥B¤J§N¢N°6¸2Ñ$>Ô$>×$DÒ$DÅRÄZÑ$PÔ$PÑQÔQÑRÔRÐRÝŒz�Š˜vÑ&Ô&Ð&r1   Nr~   ÚcmdúSequence[Path | str]Ústdinr   Úshowúbool | NoneÚcwdúPath | NoneÚrun_idrS   úExecute | Noner   c                óâ   — |                       ||||||¦  «        5 }|                     ¦   «         €	 |                     ¦   «         ®d d d ¦  «         n# 1 swxY w Y   |j        €t          ‚|j        S rH   )Úexecute_asyncÚwaitÚoutcomeÚRuntimeError)rE   r1  r3  r4  r6  r8  rS   Ústatuss           r2   ÚexecutezToxEnv.executez  s­   € ð ×Ò  U¨D°#°v¸xÑHÔHð 	ÈFØ—+’+‘-”-Ð'Øð —+’+‘-”-Ð'ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ>Ð!ÝÐØŒ~Ðs   ›*AÁAÁAc                óÌ   — t          j        d| j        j        ¦  «         d| _        t          | j                             ¦   «         ¦  «        D ]}|                     ¦   «          ŒdS )z-Interrupt the execution of a tox environment.zinterrupt tox environment: %sTN)	rÜ   rÝ   r&   rq   rC   ÚlistrB   r   Ú	interrupt)rE   r?  s     r2   rC  zToxEnv.interruptŠ  sf   € åŒÐ7¸¼¼ÑHÔHÐHØ ˆÔÝ˜4Ô1×8Ò8Ñ:Ô:Ñ;Ô;ð 	ð 	ˆFØ×ÒÑÔÐÐð	ð 	r1   úIterator[ExecuteStatus]c              #  óÂ  K  — | j         rt          d¦  «        ‚|€| j        d         }|€| j        j        dk    }t          ||| j        ||| j        ¬¦  «        }|j        t          k    rd}n4	 dt           
                    |¦  «        › �}n# t          $ r d|› �}Y nw xY wt                               d|||j        ¦  «         | j        j        | j        j        f}	|€| j        }|                      ||	||¦  «        5 }
t)          |
¦  «        }	 |
| j        |<   |
V — | j                             |¦  «         n# | j                             |¦  «         w xY w	 d d d ¦  «         n# 1 swxY w Y   |r-| j        �&|
j        �| j                             |
j        ¦  «         | j        r'|
j        � | j                             |
j        |¦  «         |                      ||
¦  «         d S )NéþÿÿÿÚtox_rooté   )Úallowr~   ú z%s%s> %s)rC   Ú
SystemExitr'   r(   Ú	verbosityr   r  r+  r6  Ú_CWDÚrelative_toÚ
ValueErrorrü   rÝ   Ú	shell_cmdr*   rÑ   ÚstderrrS   Ú_execute_callrP   rB   Úpopr>   r=  rÓ   r)   Úadd_executeÚ_log_execute)rE   r1  r3  r4  r6  r8  rS   ÚrequestÚrepr_cwdÚout_errÚexecute_statusÚ
execute_ids               r2   r;  zToxEnv.execute_async‘  sS  è è € ð Ôð 	!Ý˜R‘.”.Ð Øˆ;Ø”)˜JÔ'ˆCØˆ<Ø”<Ô)¨AÒ-ˆDÝ   c¨4Ô+EÀuÈfÐ\`Ô\qÐrÑrÔrˆØŒ;�$ÒÐØˆHˆHð%Ø6�t×/Ò/°Ñ4Ô4Ð6Ð6��øÝð %ð %ð %Ø$˜s˜9˜9���ð%øøøå�Š�z 6¨8°WÔ5FÑGÔGÐGØÔ"Ô)¨4Ô+;Ô+BÐBˆØÐØ”}ˆHØ×Ò ¨'°7¸DÑAÔAð 	7À^Ý˜NÑ+Ô+ˆJð7Ø5C�Ô& zÑ2Ø$Ð$Ð$Ð$àÔ&×*Ò*¨:Ñ6Ô6Ð6Ð6ø�Ô&×*Ò*¨:Ñ6Ô6Ð6Ð6øøøÐ6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð ð 	A�DÔ)Ð5¸.Ô:PÐ:\àÔ!×(Ò(¨Ô)?Ñ@Ô@Ð@ØŒ<ð 	E˜NÔ2Ð>ØŒL×$Ò$ ^Ô%;¸VÑDÔDÐDØ×Ò˜' >Ñ2Ô2Ð2Ð2Ð2s<   Á-B ÂBÂBÃ;E!ÄD5ÄE!Ä5EÅE!Å!E%Å(E%rV  r   r?  r   c                óÎ   — | j         dk    rt          | j        ¦  «         | xj         dz  c_         |                      | j        | j        | j         › d|j        › d�z  ||¦  «         d S )Nr   é   ú-z.log)rD   r   ry   Ú_write_execute_logrq   r8  )rE   rV  r?  s      r2   rU  zToxEnv._log_execute»  ss   € ØŒ<˜1ÒÐÝ˜TÔ-Ñ.Ô.Ð.ØˆŒ˜ÑˆŒØ×Ò ¤	¨4Ô+;ÀÄÐ>dÐ>dÐPWÔP^Ð>dÐ>dÐ>dÑ+dÐfmÐouÑvÔvÐvÐvÐvr1   rb   Úlog_filec           	     óº  — |                      dd¬¦  «        5 }|                     d| › d�¦  «         |                     d|j        › d�¦  «         |j                             ¦   «         D ]!\  }}|                     d|› d|› d�¦  «         Œ"|j                             ¦   «         D ]!\  }}|                     d	|› d|› d�¦  «         Œ"|                     d
|j        › d�¦  «         |j        €dgn|j        }	|                     dd                     |	¦  «        › d�¦  «         |                     d|j	        › d�¦  «         |                     d|j
        › d�¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «        5 }
|j        r|
                     |j        ¦  «         |j        r‘|
                     t          j                             ¦   «         ¦  «         |
                     d¦  «         |
                     t          j                             ¦   «         ¦  «         |
                     |j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚwtzutf-8)Úencodingzname: ú
zrun_id: zenv z: z	metadata zcwd: r'  zallow: ú:zcmd: zexit_code: Úabs   standard error:)ÚopenÚwriter8  rÔ   r   Úmetadatar6  rI  r˜   rP  Ú	exit_codeÚoutÚerrr  ÚlinesepÚencode)rb   r_  rV  r?  ÚfileÚenv_keyÚ	env_valueÚmeta_keyÚ
meta_valuerI  Úfile_bs              r2   r^  zToxEnv._write_execute_logÁ  sâ  € à�]Š]˜4¨'ˆ]Ñ2Ô2ð 	;°dØ�JŠJÐ, Ð,Ð,Ð,Ñ-Ô-Ð-Ø�JŠJÐ4 '¤.Ð4Ð4Ð4Ñ5Ô5Ð5Ø&-¤k×&7Ò&7Ñ&9Ô&9ð <ð <Ñ"�˜Ø—
’
Ð: 'Ð:Ð:¨YÐ:Ð:Ð:Ñ;Ô;Ð;Ð;Ø(.¬×(=Ò(=Ñ(?Ô(?ð Cð CÑ$�˜*Ø—
’
ÐA xÐAÐA°:ÐAÐAÐAÑBÔBÐBÐBØ�JŠJÐ.˜wœ{Ð.Ð.Ð.Ñ/Ô/Ð/Ø$œ]Ð2�S�E�E¸¼ˆEØ�JŠJÐ4 §¢¨%¡¤Ð4Ð4Ð4Ñ5Ô5Ð5Ø�JŠJÐ4˜wÔ0Ð4Ð4Ð4Ñ5Ô5Ð5Ø�JŠJÐ9 VÔ%5Ð9Ð9Ð9Ñ:Ô:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð �]Š]˜4Ñ Ô ð 	) FØŒzð )Ø—’˜VœZÑ(Ô(Ð(ØŒzð )Ø—’�RœZ×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø—’Ð/Ñ0Ô0Ð0Ø—’�RœZ×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø—’˜VœZÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð 	)ð 	)s%   ˜EE)Å)E-Å0E-Æ	B:IÉIÉIrX  r!   c              #  óv   K  — |                      || ||¬¦  «        5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S )N)rV  rÔ   r4  rX  )Úcall)rE   rS   rX  rV  r4  rY  s         r2   rR  zToxEnv._execute_callØ  s�   è è € ð �]Š]ØØØØð	 ñ 
ô 
ð 	!ð
 Ø Ð Ð Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   œ.®2µ2ÚsuspendúIterator[None]c              #  óî   K  — |                       ¦   «         5  | j                             || j        ¦  «        5 }|r|| _        d V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S rH   )Ú_log_contextr*   Úsuspend_out_errrA   )rE   rv  rX  s      r2   Údisplay_contextzToxEnv.display_contextè  s  è è € à×ÒÑ Ô ð 	ð 	 $Ô"2×"BÒ"BÀ7ÈDÔLcÑ"dÔ"dð 	ÐhoØð 2Ø*1�Ô'ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s4   —!A*¸AÁA*ÁA	ÁA*ÁA	ÁA*Á*A.Á1A.útuple[bytes, bytes] | Nonec                ó@  — | j         €d S | j         d c\  }}| _         t          t          |j        ¦  «                             ¦   «         t          t          |j        ¦  «                             ¦   «         }}|                     ¦   «          |                     ¦   «          ||fS rH   )rA   r   r   ÚbufferÚgetvalueÚclose)rE   rj  rk  Úout_bÚerr_bs        r2   Úclose_and_read_out_errzToxEnv.close_and_read_out_errï  sƒ   € ØÔ"Ð*Ø�4Ø.2Ô.EÀtÐ+‰
ˆˆc�DÔ+Ý�G S¤ZÑ0Ô0×9Ò9Ñ;Ô;½TÅ'È3Ì:Ñ=VÔ=V×=_Ò=_Ñ=aÔ=aˆuˆØ�	Š	‰ŒˆØ�	Š	‰ŒˆØ�eˆ|Ðr1   c              #  óŒ   K  — | j                              | j        j        ¦  «        5  d V — d d d ¦  «         d S # 1 swxY w Y   d S rH   )r*   Úwith_contextr&   rq   rJ   s    r2   ry  zToxEnv._log_contextø  sŽ   è è € àÔ×*Ò*¨4¬9¬>Ñ:Ô:ð 	ð 	ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   §9¹=Á =c                ó   — | j         d uS rH   )rA   rJ   s    r2   Ú_has_display_suspendedzToxEnv._has_display_suspendedý  s   € àÔ&¨dÐ2Ð2r1   )r5   r%   r6   r7   )r6   r   )r6   rL   )r6   r   )r6   rT   )rW   r
   rX   rL   rY   rL   r6   r7   )r6   r7   )r&   r   rj   r¬   r6   r©   )r6   r   )r6   r´   )r6   r€   )F)rÖ   r©   r6   r7   )rž   r€   r6   r´   )r6   r!  )rj   r!  r6   r7   )NNr~   N)r1  r2  r3  r   r4  r5  r6  r7  r8  rL   rS   r9  r6   r   )r1  r2  r3  r   r4  r5  r6  r7  r8  rL   rS   r9  r6   rD  )rV  r   r?  r   r6   r7   )
rb   rL   r_  r   rV  r   r?  r   r6   r7   )
rS   r   rX  r!   rV  r   r4  r©   r6   rD  )rv  r©   r6   rw  )r6   r|  )r6   rw  )r6   r©   )2r+   r,   r-   r.   rF   ÚpropertyrK   Ústaticmethodr   rP   rS   rV   r`   re   r«   rª   rI   rt   ry   rq   r§   r‘   r9   r;   rá   r×   rè   rÙ   rÚ   rÛ   rï   rð   rØ   r  r  r#  Úsetterr+  r  r@  rC  r   r;  rU  r^  rR  r{  rƒ  ry  r‡  r0   r1   r2   r4   r4   -   s¿  € € € € € ØÐðð ð ð ð. ð"ð "ð "ñ „Xð"ð Øð"ð "ð "ñ „^ñ „\ð"ð Øð"ð "ð "ñ „^ñ „Xð"ð Øð"ð "ð "ñ „^ñ „Xð"ð<ð <ð <ð <ðJð Jð Jð JðN*ð N*ð N*ð N*ð`1ð 1ð 1ð 1ð ð0ð 0ð 0ñ „Xð0ð ð4ð 4ð 4ñ „Xð4ð ð4ð 4ð 4ñ „Xð4ð ð0ð 0ð 0ñ „Xð0ðð ð ð ð"ð "ð "ð "ðH0ð 0ð 0ð 0ð*3ð 3ð 3ð 3ðð ð ð ð ð  ð  ð  ð Øð"ð "ð "ñ „^ñ „Xð"ð$ð $ð $ð $ðð ð ð ð)ð )ð )ð )ð7ð 7ð 7ð 7ðAð Að Að Að	@ð 	@ð 	@ð 	@ð 	@ð ðð ð ñ „Xðð$ ðð ð ñ „\ðð
 ð#ð #ð #ñ „Xð#ð „]ð,ð ,ð ,ñ „]ð,ð ðð ð ñ „Xðð
'ð 'ð 'ð 'ð !ØØØ#'ðð ð ð ð ð ð ð ð ð ð
 !ØØØ#'ð'3ð '3ð '3ð '3ñ „^ð'3ðRwð wð wð wð ð)ð )ð )ñ „\ð)ð, ð!ð !ð !ñ „^ð!ð ðð ð ñ „^ððð ð ð ð ðð ð ñ „^ðð ð3ð 3ð 3ñ „Xð3ð 3ð 3r1   r4   )Ar.   Ú
__future__r   r  rÜ   r  ræ   r–   rÐ   Úabcr   r   Ú
contextlibr   Úior   Úpathlibr   Útypingr	   r
   r   r   r   r   r   r   Útox.execute.requestr   Útox.tox_env.errorsr   r   r   Útox.tox_env.infor   Útox.util.pathr   Útox.config.cli.parserr   Útox.config.mainr   Útox.config.set_envr   Útox.config.setsr   r   Útox.execute.apir   r   r   r   Útox.journalr    Ú
tox.reportr!   r"   Útox.tox_env.installerr#   Ú	getLoggerr+   rü   r%   r4   r6  rM  r0   r1   r2   ú<module>rž     si  ðØ <Ð <à "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Và .Ð .Ð .Ð .Ð .Ð .Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø !Ð !Ð !Ð !Ð !Ð !Ø *Ð *Ð *Ð *Ð *Ð *àð 0Ø,Ð,Ð,Ð,Ð,Ð,Ø&Ð&Ð&Ð&Ð&Ð&Ø)Ð)Ð)Ð)Ð)Ð)Ø;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ØLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLÐLØ&Ð&Ð&Ð&Ð&Ð&Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø/Ð/Ð/Ð/Ð/Ð/à	ˆÔ	˜8Ñ	$Ô	$€ðð ð ð ð �zñ ô ð ðR3ð R3ð R3ð R3ð R3ˆSñ R3ô R3ð R3ðj €t„x�z„z€€€r1   