§
    øyIf’T  ã                  óÂ  — d dl mZ d dlZd dl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mZ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 d dlmZ d dlm Z  d dl!m"Z" erd dl#m$Z$ d dl%m&Z&  ej'        e(¦  «        Z) G d„ d¦  «        Z*	 	 d&d'd„Z+e G d„ d ¦  «        ¦   «         Z, ej-        d!¦  «        Z. ej-        d"¦  «        Z/ G d#„ d$¦  «        Z0g d%¢Z1dS )(é    )ÚannotationsN)ÚCounter)Ú	dataclass)Úget_close_matches)Úchain)ÚTYPE_CHECKINGÚDictÚIterableÚIteratorÚListÚcast)Ú
StrConvert)ÚEnvList)ÚHandledError)ÚToxEnvCreateArgs)ÚSkip)ÚPackageToxEnv)ÚREGISTER)Ú	RunToxEnv)ÚArgumentParser)ÚStatec                  ó|   — e Zd ZdZddd„Zdd	„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
edd„¦   «         Zedd„¦   «         ZdS )ÚCliEnvar  A `CliEnv` is the user's selection of tox test environments, usually supplied via the ``-e`` command-line option
    or in a TOML file (typically ``env_list`` in ``tox.ini``). It may be treated as a sequence if it's not a "default"
    or "all" selection.

    It is in one of three forms:

    - A list of specific environments, instantiated with a string that is a comma-separated list of the environment
      names. (These may have spaces on either side of the commas which are removed.) As a sequence this will be a
      sequence of those names.

    - "ALL" which is all environments defined by the tox configuration. This is instantiated with ``ALL`` either
      alone or as any element of a comma-separated list; any other environment names are ignored. `is_all()` will be
      true and as a sequence it will be empty. This prints in string representation as ``ALL``.

    - The default environments as chosen by tox configuration. This is instantiated with `None` as the parameter,
      `is_default_list()` will be true, and as a sequence this will be empty. This prints in string representation
      as ``<env_list>``.
    NÚvalueúNone | list[str] | strÚreturnÚNonec                ó¦   — t          |t          ¦  «        r4t          ¦   «                              |t          t                   d ¬¦  «        }|| _        d S )N)Úof_typeÚfactory)Ú
isinstanceÚstrr   Útor   Ú_names)Úselfr   s     úJ/var/www/piapp/venv/lib/python3.11/site-packages/tox/session/env_select.pyÚ__init__zCliEnv.__init__1   s?   € Ý�e�SÑ!Ô!ð 	LÝ‘L”L—O’O Eµ4½´9Àd�OÑKÔKˆEØ(-ˆŒˆˆó    úIterator[str]c              #  óH   K  — | j         s| j        �| j        E d {V —† d S d S d S ©N)Úis_allr$   ©r%   s    r&   Ú__iter__zCliEnv.__iter__6   sG   è è € ØŒ{ð 	#˜tœ{Ð6Ø”{Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð	#ð 	#Ð6Ð6r(   Úboolc                ó*   — t          | j        ¦  «        S )zAA `CliEnv` is `True` if it's not the default set of environments.)r/   r$   r-   s    r&   Ú__bool__zCliEnv.__bool__:   s   € å�D”KÑ Ô Ð r(   r"   c                óP   — | j         rdn| j        rdnd                     | ¦  «        S )NÚALLz
<env_list>ú,)r,   Úis_default_listÚjoinr-   s    r&   Ú__str__zCliEnv.__str__>   s/   € ØœÐcˆuˆu¸$Ô:NÐ*b¨,¨,ÐTW×T\ÒT\Ð]aÑTbÔTbÐcr(   c                ól   — | j         j        › d| j        rdnt          t	          | ¦  «        ¦  «        › d�S )Nú(Ú ú))Ú	__class__Ú__name__r5   Úreprr"   r-   s    r&   Ú__repr__zCliEnv.__repr__A   s:   € Ø”.Ô)Ð^Ð^°$Ô2FÐ,[¨B¨BÍDÕQTÐUYÑQZÔQZÉOÌOÐ^Ð^Ð^Ð^r(   ÚotherÚobjectc                ób   — t          | ¦  «        t          |¦  «        k    o| j        |j        k    S r+   )Útyper$   ©r%   r@   s     r&   Ú__eq__zCliEnv.__eq__D   s'   € Ý�D‰zŒz�T %™[œ[Ò(ÐH¨T¬[¸E¼LÒ-HÐHr(   c                ó   — | |k     S r+   © rD   s     r&   Ú__ne__zCliEnv.__ne__G   s   € Ø˜E’MÐ"Ð"r(   c                ó&   — | j         d uod| j         v S )Nr3   ©r$   r-   s    r&   r,   zCliEnv.is_allJ   s   € àŒ{ $Ð&Ð?¨5°D´KÐ+?Ð?r(   c                ó   — | j         pg  S r+   rJ   r-   s    r&   r5   zCliEnv.is_default_listN   s   € à”KÐ% 2Ð&Ð&r(   r+   )r   r   r   r   )r   r)   )r   r/   )r   r"   )r@   rA   r   r/   )r=   Ú
__module__Ú__qualname__Ú__doc__r'   r.   r1   r7   r?   rE   rH   Úpropertyr,   r5   rG   r(   r&   r   r      sÿ   € € € € € ðð ð&.ð .ð .ð .ð .ð
#ð #ð #ð #ð!ð !ð !ð !ðdð dð dð dð_ð _ð _ð _ðIð Ið Ið Ið#ð #ð #ð #ð ð@ð @ð @ñ „Xð@ð ð'ð 'ð 'ñ „Xð'ð 'ð 'r(   r   TFÚparserr   ÚdefaultúCliEnv | NoneÚmultipler/   Ú
group_onlyr   c           
     óŒ  — |r,|                       d¦  «        }|                     d¬¦  «        }n| }|s&|rd}nd}|                     dd||t          ¬¦  «         |rGd	}|                     d
dd|g t          d¬¦  «         d}|                     ddd|g t          dd¬¦  «         d}|                     ddd|dt          ¬¦  «         |S )zô
    Register environment selection flags.

    :param parser: the parser to register to
    :param default: the default value for env selection
    :param multiple: allow selecting multiple environments
    :param group_only:
    :return:
    zselect target environment(s)F)ÚrequiredzJenumerate (ALL -> all environments, not set -> use <env_list> from config)zenvironment to runz-eÚenv)ÚdestÚhelprQ   rC   zlabels to evaluatez-mÚlabelsÚlabelú+)rX   ÚmetavarrY   rQ   rC   Únargszifactors to evaluate (passing multiple factors means 'AND', passing this option multiple times means 'OR')z-fÚfactorsÚfactorÚappend)rX   r]   rY   rQ   rC   r^   ÚactionzDexclude all environments selected that match this regular expressionz
--skip-envÚskip_envÚrer:   )rX   r]   rY   rQ   rC   )Úadd_argument_groupÚadd_mutually_exclusive_groupÚadd_argumentr   r"   )rP   rQ   rS   rT   ÚgroupÚadd_toÚhelp_msgs          r&   Úregister_env_select_flagsrk   S   s  € ð ð Ø×)Ò)Ð*HÑIÔIˆØ!&×!CÒ!CÈUÐ!CÑ!SÔ!SˆˆàˆØð [Øð 	,ØcˆHˆHà+ˆHØ×Ò˜D u°8ÀWÕSYÐÑZÔZÐZØð 
Ø'ˆØ×Ò˜D x¸ÀxÐY[ÕbeÐmpÐÑqÔqÐqàwð 	ð 	×ÒØØØØØÝØØð 	ñ 		
ô 		
ð 		
ð V€HØ
×Ò˜¨:¸tÈ(Ð\^ÕehÐÑiÔiÐiØ€Mr(   c                  ó6   — e Zd ZU dZded<   ded<   dZded<   dS )	Ú_ToxEnvInfoztox environment information.zPackageToxEnv | RunToxEnvrW   r/   Ú	is_activeNztuple[str, Skip] | NoneÚpackage_skip)r=   rL   rM   rN   Ú__annotations__ro   rG   r(   r&   rm   rm   ‚   s>   € € € € € € à&Ð&à"Ð"Ð"Ñ"Ø€O€O�OØ,0€LÐ0Ð0Ð0Ñ0Ð0Ð0r(   rm   z,(pypy|py|cython|)((\d(\.\d+(\.\d+)?)?)|\d+)?zalpha|beta|rc\.\d+c                  ó¶   — e Zd Zd0d„Zed1d„¦   «         Zd2d	„Zd3d
„Zd4d„Zed5d„¦   «         Z	d3d„Z
d6d„Zd7d„Zd8d„Zd9d„Zd3d „Zd:d#„Zd$d%d&œd;d*„Zd3d+„Zd<d.„Zd/S )=ÚEnvSelectorÚstater   r   r   c                ó  — d| _         t          ¦   «         | _        || _        d | _        t          ¦   «         | _        ddlm} || _	        | j        j
        j        | _        | j        j        | _        d | _        | j        j        j                             dt$          t&          t(          f         i d¦  «         t+          |j        j        dd¦  «                             ¦   «         }|rt1          j        |¦  «        nd | _        d S )NTr   )ÚMANAGERrZ   zcore labelsrc   r:   )Úon_empty_fallback_pyÚsetÚ_warned_aboutÚ_stateÚ_defined_envs_r   Ú_pkg_env_counterÚtox.plugin.managerru   Ú_managerÚ_optionsÚlog_handlerÚ_log_handlerÚ_journalÚ
_provisionÚconfÚcoreÚ
add_configr	   r"   r   ÚgetattrÚoptionsÚstriprd   ÚcompileÚ
_filter_re)r%   rs   ru   Útox_env_filter_regexs       r&   r'   zEnvSelector.__init__�   sÞ   € ð %)ˆÔ!Ý'*¡u¤uˆÔØˆŒØ=AˆÔÝ.5©i¬iˆÔØ.Ð.Ð.Ð.Ð.Ð.àˆŒØ œKÔ0Ô<ˆÔØœÔ,ˆŒØ37ˆŒàŒÔÔ×(Ò(¨µ4½½W¸Ô3EÀrÈ=ÑYÔYÐYÝ& u¤zÔ'9¸:ÀrÑJÔJ×PÒPÑRÔRÐØ>RÐ\�"œ*Ð%9Ñ:Ô:Ð:ÐX\ˆŒˆˆr(   rR   c                óB   — t          | j        j        j        dd ¦  «        S )NrW   )r†   ry   rƒ   r‡   r-   s    r&   Ú	_cli_envszEnvSelector._cli_envs¤   s   € å�t”{Ô'Ô/°¸Ñ=Ô=Ð=r(   ú$Iterator[tuple[Iterable[str], bool]]c              #  óü  K  — | j         �| j         d         fdfV — | j        j        j        d         d}}| j        �| j        j        r|dfV — n.| j        j        rd}n|                      ¦   «          | j        dfV — | j        j        |fV — t           	                    t          j        | j        j        j        d                              ¦   «         ¦  «        ¦  «        }|r|                     ¦   «         dfV — dS dS )zX:return: sources of tox environments defined with name and if is marked as target to runNé   FÚenv_listTrZ   )r‚   ry   rƒ   r„   r�   r5   r,   Ú_ensure_envs_validÚdictÚfromkeysr   Úfrom_iterableÚvaluesÚkeys)r%   r‘   Úeverything_activeÚ
label_envss       r&   Ú_collect_nameszEnvSelector._collect_names¨   s  è è € àŒ?Ð&Ø”? 1Ô%Ð'¨Ð.Ð.Ð.Ð.Ø&*¤kÔ&6Ô&;¸JÔ&GÈÐ#ˆØŒ>Ð! T¤^Ô%CÐ!Ø˜D�.Ð Ð Ð Ð ØŒ^Ô"ð 	'Ø $ÐÐà×#Ò#Ñ%Ô%Ð%Ø”. $Ð&Ð&Ð&Ð&ØŒkÔÐ 1Ð1Ð1Ð1Ð1Ý—]’]¥5Ô#6°t´{Ô7GÔ7LÈXÔ7V×7]Ò7]Ñ7_Ô7_Ñ#`Ô#`ÑaÔaˆ
Øð 	+Ø—/’/Ñ#Ô# UÐ*Ð*Ð*Ð*Ð*Ð*ð	+ð 	+r(   c                óâ  — t          t          j        d„ | j        j        D ¦   «         ¦  «        ¦  «        }|                     d¦  «         i }| j        pg D �]O}|                     d¦  «        rŒt           	                    | 
                    d¦  «        ¦  «        }t          ¦   «         }|D ]q}t                               |¦  «        st                               |¦  «        s||v r|                     |¦  «         ŒPt          ||d¬¦  «        }|r|d         nd ||<   Œrt          |¦  «        |z
  rut          d„ |                     ¦   «         D ¦   «         ¦  «        rd nDd                     t%          t&          t(                   |                     ¦   «         ¦  «        ¦  «        ||<   �ŒQ|rFd	}d
}	|                     ¦   «         D ]\  }}
|	s|dz  }d}	||z  }|
r	|d|
› d�z  }Œt-          |¦  «        ‚d S )Nc              3  ó@   K  — | ]}|                      d ¦  «        V — ŒdS )ú-N©Úsplit)Ú.0rW   s     r&   ú	<genexpr>z1EnvSelector._ensure_envs_valid.<locals>.<genexpr>º   s,   è è € Ð/[Ð/[À3°·	²	¸#±´Ð/[Ð/[Ð/[Ð/[Ð/[Ð/[r(   z.pkgz.pkg_externalr�   r�   )Únr   c              3  ó   K  — | ]}|d u V — Œ	d S r+   rG   )r    Úis     r&   r¡   z1EnvSelector._ensure_envs_valid.<locals>.<genexpr>Ï   s&   è è € Ð?Ð?¨˜1 ˜9Ð?Ð?Ð?Ð?Ð?Ð?r(   z7provided environments not found in configuration file:
Tú
Fz - did you mean ú?)rw   r   r•   ry   rƒ   Úaddr�   Ú
startswithr“   r”   rŸ   Ú_DYNAMIC_ENV_FACTORSÚ	fullmatchÚ_PY_PRE_RELEASE_FACTORr   Úanyr–   r6   r   r
   r"   Úitemsr   )r%   Úvalid_factorsÚinvalid_envsrW   r_   Úfound_factorsr`   ÚclosestÚmsgÚfirstÚ
suggestions              r&   r’   zEnvSelector._ensure_envs_valid¹   s%  € Ý�EÔ/Ð/[Ð/[È$Ì+ÔJZÐ/[Ñ/[Ô/[Ñ[Ô[Ñ\Ô\ˆØ×Ò˜&Ñ!Ô!Ð!Ø.0ˆØ”>Ð' Rð 	ñ 	ˆCØ�~Š~˜oÑ.Ô.ð ØÝ-1¯]ª]¸3¿9º9ÀS¹>¼>Ñ-JÔ-JˆGÝ&)¡e¤eˆMØ!ð 	Fð 	F�å(×2Ò2°6Ñ:Ô:ðFå-×7Ò7¸Ñ?Ô?ðFð  Ð.Ð.à!×%Ò% fÑ-Ô-Ð-Ð-å/°¸ÈÐKÑKÔK�GØ4;Ð&E g¨a¤j jÀ�G˜F‘O�OÝ�7‰|Œ|˜mÑ+ð õ Ð?Ð?¨g¯nªnÑ.>Ô.>Ð?Ñ?Ô?Ñ?Ô?ðI�D�DàŸš¥$¥xµ¤}°g·n²nÑ6FÔ6FÑ"GÔ"GÑHÔHð ˜SÑ!ùð
 ð 
	$ØLˆCØˆEØ#/×#5Ò#5Ñ#7Ô#7ð <ð <‘��ZØð  Ø˜4‘K�CØ�Ø�s‘
�Øð <ØÐ;¨jÐ;Ð;Ð;Ñ;�CøÝ˜sÑ#Ô#Ð#ð
	$ð 
	$r(   údict[str, bool]c                ó4  — i }|                       ¦   «         D ]\  }}|D ]}||vr|||<   ŒŒt          | j        j        j        dg ¦  «        sMt          | j        j        j        dg ¦  «        s-| j        r&t          |                     ¦   «         ¦  «        sd|d<   |S )NrZ   r_   TÚpy)rš   r†   ry   rƒ   r‡   rv   r¬   r–   )r%   Úenv_name_to_active_mapÚa_collectionrn   Únames        r&   Ú_env_name_to_activezEnvSelector._env_name_to_activeÞ   sÏ   € Ø!#ÐØ'+×':Ò':Ñ'<Ô'<ð 	=ð 	=Ñ#ˆL˜)Ø$ð =ð =�ØÐ5Ð5Ð5Ø3<Ð*¨4Ñ0øð=õ
 ˜œÔ)Ô1°8¸RÑ@Ô@ð	0ÝDKÈDÌKÔL\ÔLdÐfoÐqsÑDtÔDtð	0ð Ô)ð	0õ Ð.×5Ò5Ñ7Ô7Ñ8Ô8ð		0ð ,0Ð" 4Ñ(Ø%Ð%r(   údict[str, _ToxEnvInfo]c                ó6  ‡ ‡— ‰ j         �€	i ‰ _         i }‰                      ¦   «         Š‰                     ¦   «         D �]í\  }}|‰ j        v rŒ‰ j                             |¦  «        5  ‰                      |¦  «        }|€	 d d d ¦  «         ŒOt          ||¦  «        ‰ j         |<   |                     ¦   «         }d d d ¦  «         n# 1 swxY w Y   |��X‰ j         	                    ¦   «         }	 ‰  
                    ||‰¦  «        |_        	 |j        D ]s}‰ j                              |j        ¦  «        }|�Pt          |j        t"          ¦  «        r6‰ j         |j        = |j        j        D ]}	‰ j        |	j        xx         dz  cc<   ŒŒt�ŒI# t$          $ r ‰ j         |         j        €J ‚Y �Œjw xY w# t$          $ rr}
|
||<   ‰ j        |z
  D ])}‰ j         |= ‰ j        j                             |¦  «         Œ*|‰ _        ‰ j         |= ‰ j        j                             |¦  «         Y d }
~
�Œåd }
~
ww xY w�Œï|                     ¦   «         ‰ j                              ¦   «         z
  }|r"|t1          t3          |¦  «        ¦  «                 ‚‰ j                             ¦   «         D ]!\  }}|s‰ j                              |¦  «         Œ"t7          ‰ˆfd„‰ j         D ¦   «         ¦  «        }ˆ fd„|D ¦   «         ‰ _         ‰                      ¦   «          ‰                      ¦   «          ‰ j         S )Nr�   c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S r+   rG   )r    r¤   Úenv_name_to_actives     €r&   r¡   z,EnvSelector._defined_envs.<locals>.<genexpr>)  s/   øè è € Ð.mÐ.m°QÐQRÐZlÐQlÐQl¨qÐQlÐQlÐQlÐQlÐ.mÐ.mr(   c                ó>   •— i | ]}|‰j         v ¯|‰j         |         “ŒS rG   )rz   )r    rº   r%   s     €r&   ú
<dictcomp>z-EnvSelector._defined_envs.<locals>.<dictcomp>*  s2   ø€ Ð"tÐ"tÐ"tÀtÐX\Ð`dÔ`sÐXsÐXs 4¨Ô)<¸TÔ)BÐXsÐXsÐXsr(   )rz   r»   r­   r{   r€   Úwith_contextÚ_build_run_envrm   Úget_package_env_typesÚcopyÚ_build_pkg_envÚpackage_envÚpackage_envsÚgetrº   r!   rW   r   Ú	Exceptionro   ry   rƒ   Ú	clear_envr—   ÚnextÚiterÚpopr   Ú_finalize_configÚ_mark_active)r%   Úfailedrº   rn   Úrun_envÚpkg_name_typeÚstart_package_env_use_counterrW   Úother_env_infoÚ_pkg_envÚ	exceptionÚkeyÚfailed_to_createÚcountÚorderr¿   s   `              @r&   Ú_defined_envszEnvSelector._defined_envsî   s  øø€ ð ÔÑ&Ø"$ˆDÔØ+-ˆFØ!%×!9Ò!9Ñ!;Ô!;ÐØ#5×#;Ò#;Ñ#=Ô#=ð "Vñ "V‘��iØ˜4Ô0Ð0Ð0ØØÔ&×3Ò3°DÑ9Ô9ð Dð DØ"×1Ò1°$Ñ7Ô7�GØ�Ø ðDð Dð Dñ Dô Dð Dð Dõ 1<¸GÀYÑ0OÔ0O�DÔ'¨Ñ-Ø$+×$AÒ$AÑ$CÔ$C�MðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð !Ñ,ð 59Ô4I×4NÒ4NÑ4PÔ4PÐ1ðVØ.2×.AÒ.AÀ-ÐQUÐWiÑ.jÔ.j˜Ô+ð	VØ'.Ô';ð Rð R à15Ô1D×1HÒ1HÈÌÑ1RÔ1R Ø#1Ð#=Å*È^ÔM_ÕajÑBkÔBkÐ#=Ø(,Ô(;¸C¼HÐ(EØ4BÔ4FÔ4Sð %Rð %R¨Ø(,Ô(=¸h¼mÐ(LÐ(LÔ(LÐPQÑ(QÐ(LÐ(LÑ(LÐ(LøñRøõ  )ð Vð Vð VØ#'Ô#6°tÔ#<Ô#IÐ#UÐ#UÐ#UÐ#UÑ#UðVøøøøõ% %ð 9ð 9ð 9à'0˜˜t™Ø#'Ô#8Ð;XÑ#Xð <ð <˜CØ $Ô 3°CÐ 8Ø œKÔ,×6Ò6°sÑ;Ô;Ð;Ð;Ø0M˜Ô-Ø Ô/°Ð5ØœÔ(×2Ò2°4Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ñ8øøøøð9øøøñ -ð4  &Ÿ{š{™}œ}¨tÔ/B×/GÒ/GÑ/IÔ/IÑIÐØð ;Ø�T¥$Ð'7Ñ"8Ô"8Ñ9Ô9Ô:Ð:Ø#Ô4×:Ò:Ñ<Ô<ð 2ð 2‘��eØð 2ØÔ'×+Ò+¨DÑ1Ô1Ð1øõ Ð,Ð.mÐ.mÐ.mÐ.m¸$Ô:MÐ.mÑ.mÔ.mÑnÔnˆEØ"tÐ"tÐ"tÐ"tÈuÐ"tÑ"tÔ"tˆDÔØ×!Ò!Ñ#Ô#Ð#Ø×ÒÑÔÐØÔ"Ð"sD   Á&CÂ,CÃC	Ã
C	Ã+F*ÄA;FÆF'Æ&F'Æ*
H&Æ4A'H!È!H&c                óÒ   — | j         €J ‚| j                              ¦   «         D ] }|j        j                             ¦   «          Œ!| j        j        j                             ¦   «          d S r+   )rz   r–   rW   rƒ   Úmark_finalizedry   r„   )r%   Útox_envs     r&   rÏ   zEnvSelector._finalize_config/  si   € ØÔ"Ð.Ð.Ð.ØÔ*×1Ò1Ñ3Ô3ð 	.ð 	.ˆGØŒKÔ×+Ò+Ñ-Ô-Ð-Ð-ØŒÔÔ×,Ò,Ñ.Ô.Ð.Ð.Ð.r(   rº   r"   úRunToxEnv | Nonec                óÈ  — | j         �"| j         d         du r|| j         d         k    rd S | j         � | j         d         r|| j         d         k    rd S | j        j                             |d¬¦  «        }d}|                     d|t
          | j        j        j        j        ¬¦  «         t          j	        t          t
          |d         ¦  «        ¦  «        }| j                             |¦  «        }t          || j        j        j        | j        j        j        || j        ¦  «        } ||¦  «        }|                     ¦   «          | j                             || j        ¦  «         |S )Nr   Fr�   ©Úpackagez1the tox execute used to evaluate this environmentÚrunner)r—   Údescr   rQ   )r‚   ry   rƒ   Úget_envr…   r"   r‡   Údefault_runnerr   rä   r   r�   Úget_env_journalr   r„   r€   Úregister_configr}   Útox_add_env_config)r%   rº   Úenv_confrå   rä   ÚjournalÚargsrÒ   s           r&   rÃ   zEnvSelector._build_run_env5  sD  € ØŒ?Ð&¨4¬?¸1Ô+=ÀÐ+FÐ+FÈ4ÐSWÔSbÐcdÔSeÒKeÐKeà�4ØŒ?Ð&¨4¬?¸1Ô+=Ð&À$È$Ì/ÐZ[ÔJ\ÒB\ÐB\à�4Ø”;Ô#×+Ò+¨D¸%Ð+Ñ@Ô@ˆØBˆØ×Ò °½cÈ4Ì;ÔK[ÔKcÔKrÐÑsÔsÐsÝ”¥¥c¨8°HÔ+=Ñ!>Ô!>Ñ?Ô?ˆØ”-×/Ò/°Ñ5Ô5ˆÝ ¨$¬+Ô*:Ô*?ÀÄÔAQÔAYÐ[bÐdhÔduÑvÔvˆØ�&˜‘,”,ˆØ×ÒÑ!Ô!Ð!ØŒ×(Ò(¨°4´;Ñ?Ô?Ð?Øˆr(   Ú	name_typeútuple[str, str]Úrun_env_nameÚactiver   c           	     óî  — |\  }}| j                              |¦  «        5  ||k    r|› d�}t          |¦  «        ‚| j        d uo| j        j        }	 |                      |||                     ||¦  «        ¦  «        }| j        |xx         dz  cc<   | j        |         j	        }	| 
                    |	¦  «        }
	 t          |
¦  «        }	 |                      |||¦  «        }| j        |d         xx         dz  cc<   |
                     |¦  «        }ŒH# t          $ r Y nw xY wn:# t          $ r-}| j        €J ‚|d         |f| j        |         _        Y d }~nd }~ww xY w|cd d d ¦  «         S # 1 swxY w Y   d S )Nz cannot self-packager�   Tr   )r€   rÂ   r   r�   r,   Ú_get_package_envrÉ   r{   rz   rW   Úregister_run_envrÌ   rÆ   ÚsendÚStopIterationr   ro   )r%   rî   rð   rñ   rº   Ú	core_typer²   Úmissing_activeÚpackage_tox_envrÒ   Úchild_package_envsÚchild_pkg_envr×   s                r&   rÆ   zEnvSelector._build_pkg_envG  s%  € Ø#‰ˆˆiØÔ×+Ò+¨DÑ1Ô1ð 	#ð 	#Ø˜tÒ#Ð#Ø%Ð;Ð;Ð;�Ý" 3Ñ'Ô'Ð'Ø!œ^°4Ð7ÐQ¸D¼NÔ<QˆNð[Ø"&×"7Ò"7¸	À4ÈÏÊÐTXÐZhÑIiÔIiÑ"jÔ"j�ØÔ% dÐ+Ð+Ô+¨qÑ0Ð+Ð+Ñ+Ø%)Ô%8¸Ô%FÔ%J�Ø%4×%EÒ%EÀgÑ%NÔ%NÐ"ðÝ $Ð%7Ñ 8Ô 8�IðKØ(,×(;Ò(;¸IÀ|ÐU[Ñ(\Ô(\˜ØÔ-¨i¸¬lÐ;Ð;Ô;¸qÑ@Ð;Ð;Ñ;Ø$6×$;Ò$;¸MÑ$JÔ$J˜	ðKøõ %ð ð ð Ø�DðøøøØøÝð [ð [ð [ØÔ*Ð6Ð6Ð6ØBKÈAÄ,ÐPYÐAZ�Ô# LÔ1Ô>Ð>Ð>Ð>Ð>Ð>øøøøð[øøøð #ð+	#ð 	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s[    0E*ÁA'D"Â9ADÄ
DÄD"ÄDÄD"Ä!E*Ä"
EÄ,#EÅE*ÅEÅE*Å*E.Å1E.Úpackagerrn   r/   c                óú  — | j         €J ‚|| j         v rŒ| j         |         j        }t          |t          ¦  «        rF|                     ¦   «         |k    r,|› d|                     ¦   «         › d|› d�}t          |¦  «        ‚|S | j        j                             |¦  «         t          j
        |¦  «        }| j        j                             |d¬¦  «        }| j                             |¦  «        }t          || j        j        j        | j        j        j        || j        ¦  «        }	 ||	¦  «        }
|
                     ¦   «          t'          |
|¦  «        | j         |<   | j                             || j        ¦  «         |
S )Nz is already defined as a z, cannot be z tooTrâ   )rz   rW   r!   r   Úidr   ry   rƒ   rË   r   rã   ræ   r�   rè   r   r„   r‡   r€   ré   rm   r}   rê   )r%   rü   rº   rn   rW   r²   Úpackage_typeÚpkg_confrì   rí   Úpkg_envs              r&   ró   zEnvSelector._get_package_env`  sj  € ØÔ"Ð.Ð.Ð.Ø�4Ô&Ð&Ð&ØÔ% dÔ+Ô/ˆCÝ˜#�}Ñ-Ô-ð Ø—6’6‘8”8˜xÒ'Ð'Ø!Ð`Ð`¸C¿FºF¹H¼HÐ`Ð`ÐRZÐ`Ð`Ð`�CÝ& sÑ+Ô+Ð+Ø�
ØŒKÔ×&Ò& tÑ,Ô,Ð,ÝÔ'¨Ñ1Ô1ˆØ”;Ô#×+Ò+¨D¸$Ð+Ñ?Ô?ˆØ”-×/Ò/°Ñ5Ô5ˆÝ ¨$¬+Ô*:Ô*?ÀÄÔAQÔAYÐ[bÐdhÔduÑvÔvˆØ!- ¨dÑ!3Ô!3ˆØ×ÒÑ!Ô!Ð!Ý$/°¸Ñ$CÔ$CˆÔ˜DÑ!ØŒ×(Ò(¨°4´;Ñ?Ô?Ð?Øˆr(   útuple[set[str], ...]c                ót   — t          | j        j        j        dg ¦  «        }t	          d„ |D ¦   «         ¦  «        S )Nr_   c              3  ó.   K  — | ]}d „ |D ¦   «         V — ŒdS )c                óB   — h | ]}|                      d ¦  «        D ]}|’ŒŒS )r�   rž   )r    r`   Úfs      r&   ú	<setcomp>z7EnvSelector._parse_factors.<locals>.<genexpr>.<setcomp>y  s1   € ÐMÐMÐM˜F¸6¿<º<ÈÑ;LÔ;LÐMÐM°a�aÐMÐMÐMÐMr(   NrG   )r    Úfactor_lists     r&   r¡   z-EnvSelector._parse_factors.<locals>.<genexpr>y  s2   è è € ÐmÐmÐR]ÐMÐM kÐMÑMÔMÐmÐmÐmÐmÐmÐmr(   )r†   ry   rƒ   r‡   Útuple)r%   Úraw_factorss     r&   Ú_parse_factorszEnvSelector._parse_factorst  s;   € õ ˜dœkÔ.Ô6¸	À2ÑFÔFˆÝÐmÐmÐalÐmÑmÔmÑmÔmÐmr(   c           	     ó   — t          t          | j        j        j        dg ¦  «        ¦  «        }|                      ¦   «         }| j        €J ‚|s|�r*| j                             ¦   «         D ]	}d|_        Œ
|r¡| j	        �| j	        d         s�|D ]B}| j        j        j
        d                              |g ¦  «        D ]}d| j        |         _        ŒŒC| j                             ¦   «         D ].}|                     |j        j        d         ¦  «        rd|_        Œ/|rd| j                             ¦   «         D ]L\  }}|D ]@}|                     t          |                     d¦  «        ¦  «        ¦  «        r	d|_         nŒAŒId S d S d S )NrZ   Fr   Tr�   )rw   r†   ry   rƒ   r‡   r  rz   r–   rn   r‚   r„   rÉ   ÚintersectionrW   r­   ÚissubsetrŸ   )r%   rZ   r_   Úenv_infor[   Úenv_namerº   Ú
factor_sets           r&   rÐ   zEnvSelector._mark_active{  sÇ  € Ý•W˜Tœ[Ô-Ô5°xÀÑDÔDÑEÔEˆØ×%Ò%Ñ'Ô'ˆàÔ"Ð.Ð.Ð.Øð 	"�Wñ 	"Ø Ô/×6Ò6Ñ8Ô8ð +ð +�Ø%*�Ô"Ð"àð 2˜4œ?Ð2¸$¼/È!Ô:LÐ2Ø#ð Gð G�EØ$(¤KÔ$4Ô$9¸(Ô$C×$GÒ$GÈÈrÑ$RÔ$Rð Gð G˜ØBF˜Ô+¨HÔ5Ô?Ð?ðGà $Ô 3× :Ò :Ñ <Ô <ð 2ð 2�HØ×*Ò*¨8¬<Ô+<¸XÔ+FÑGÔGð 2Ø-1˜Ô*øØð "Ø&*Ô&9×&?Ò&?Ñ&AÔ&Að "ð "‘N�D˜(Ø&-ð "ð "˜
Ø%×.Ò.­s°4·:²:¸c±?´?Ñ/CÔ/CÑDÔDð "Ø15˜HÔ.Ø!˜Eð"øð	"ð 	"ð"ð "ð"ð "r(   ÚitemúRunToxEnv | PackageToxEnvc                ó&   — | j         |         j        S )z_
        :param item: the name of the environment
        :return: the tox environment
        )rÜ   rW   )r%   r  s     r&   Ú__getitem__zEnvSelector.__getitem__’  s   € ð
 Ô! $Ô'Ô+Ð+r(   TF)Úonly_activerã   r  rã   r)   c             #  ót  K  — | j                              ¦   «         D ]›\  }}|r|j        sŒ|st          |j        t
          ¦  «        sŒ,| j        �d| j                             |¦  «        rJ|| j        vr@| j         	                    |¦  «         t                               d|| j        j        ¦  «         Œ—|V — ŒœdS )zï
        Get tox environments.

        :param only_active: active environments are marked to be executed in the current target
        :param package: return package environments

        :return: an iteration of tox environments
        Nz&skip environment %s, matches filter %r)rÜ   r­   rn   r!   rW   r   rŠ   Úmatchrx   r§   ÚLOGGERÚwarningÚpattern)r%   r  rã   rº   r  s        r&   rÍ   zEnvSelector.iter™  sÕ   è è € ð #Ô0×6Ò6Ñ8Ô8ð 
	ð 
	‰NˆD�(Øð  8Ô#5ð ØØð ¥:¨h¬l½IÑ#FÔ#Fð ØØŒÐ*¨t¬×/DÒ/DÀTÑ/JÔ/JÐ*Ø˜tÔ1Ð1Ð1ØÔ&×*Ò*¨4Ñ0Ô0Ð0Ý—N’NÐ#KÈTÐSWÔSbÔSjÑkÔkÐkØØˆJˆJˆJˆJð
	ð 
	r(   c                óÒ   ‡— | j         |                      ¦   «         cŠ}ˆfd„|                     ¦   «         D ¦   «         }|r'dd                     |¦  «        › �}t	          |¦  «        ‚d S )Nc                ó^   •— g | ])\  }}|¯t          ‰|         j        t          ¦  «        ¯'|‘Œ*S rG   )r!   rW   r   )r    r¢   ÚaÚenvss      €r&   ú
<listcomp>z=EnvSelector.ensure_only_run_env_is_active.<locals>.<listcomp>µ  s8   ø€ Ð`Ð`Ð`™˜˜A°1Ð`½ÀDÈÄGÄKÕQ^Ñ9_Ô9_Ð`�1Ð`Ð`Ð`r(   z$cannot run packaging environment(s) r4   )rÜ   r»   r­   r6   r   )r%   rñ   Úinvalidr²   r  s       @r&   Úensure_only_run_env_is_activez)EnvSelector.ensure_only_run_env_is_active³  sw   ø€ ØÔ)¨4×+CÒ+CÑ+EÔ+EˆˆˆfØ`Ð`Ð`Ð` §¢¡¤Ð`Ñ`Ô`ˆØð 	$ØL¸¿ºÀ'Ñ9JÔ9JÐLÐLˆCÝ˜sÑ#Ô#Ð#ð	$ð 	$r(   ÚonÚprovision_tox_envc                ó   — ||f| _         d S r+   )r‚   )r%   r#  r$  s      r&   Ú_mark_provisionzEnvSelector._mark_provisionº  s   € ØÐ/Ð/ˆŒˆˆr(   N)rs   r   r   r   )r   rR   )r   rŽ   )r   r   )r   rµ   )r   r¼   )rº   r"   r   rà   )rî   rï   rð   r"   rñ   rµ   r   r   )rü   r"   rº   r"   rn   r/   r   r   )r   r  )r  r"   r   r  )r  r/   rã   r/   r   r)   )r#  r/   r$  r"   r   r   )r=   rL   rM   r'   rO   r�   rš   r’   r»   rÜ   rÏ   rÃ   rÆ   ró   r  rÐ   r  rÍ   r"  r&  rG   r(   r&   rr   rr   �   sˆ  € € € € € ð]ð ]ð ]ð ]ð( ð>ð >ð >ñ „Xð>ð+ð +ð +ð +ð"#$ð #$ð #$ð #$ðJ&ð &ð &ð &ð  ð>#ð >#ð >#ñ „Xð>#ð@/ð /ð /ð /ðð ð ð ð$#ð #ð #ð #ð2ð ð ð ð(nð nð nð nð"ð "ð "ð "ð.,ð ,ð ,ð ,ð !Øð	ð ð ð ð ð ð4$ð $ð $ð $ð0ð 0ð 0ð 0ð 0ð 0r(   rr   )r   rr   rk   )TF)
rP   r   rQ   rR   rS   r/   rT   r/   r   r   )2Ú
__future__r   Úloggingrd   Úcollectionsr   Údataclassesr   Údifflibr   Ú	itertoolsr   Útypingr   r	   r
   r   r   r   Útox.config.loader.str_convertr   Útox.config.typesr   Ú
tox.reportr   Útox.tox_env.apir   Útox.tox_env.errorsr   Útox.tox_env.packager   Útox.tox_env.registerr   Útox.tox_env.runnerr   Úargparser   Útox.session.stater   Ú	getLoggerr=   r  r   rk   rm   r‰   r©   r«   rr   Ú__all__rG   r(   r&   ú<module>r:     s^  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fà 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø $Ð $Ð $Ð $Ð $Ð $Ø #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ø )Ð )Ð )Ð )Ð )Ð )Ø (Ð (Ð (Ð (Ð (Ð (àð (Ø'Ð'Ð'Ð'Ð'Ð'à'Ð'Ð'Ð'Ð'Ð'ð 
ˆÔ	˜8Ñ	$Ô	$€ð3'ð 3'ð 3'ð 3'ð 3'ñ 3'ô 3'ð 3'ðr Øð	,ð ,ð ,ð ,ð ,ð^ ð1ð 1ð 1ð 1ð 1ñ 1ô 1ñ „ð1ð "�r”zÐ"QÑRÔRÐ Ø#˜œÐ$9Ñ:Ô:Ð ðl0ð l0ð l0ð l0ð l0ñ l0ô l0ð l0ð^	ð ð €€€r(   