§
    øyIfA@  ã                  óî  — 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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mZ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  dd	l!m"Z" d
dl#m$Z$ d
dl%m&Z& erddl'm(Z(  G d„ de¦  «        Z) G d„ de
¦  «        Z* edd¬¦  «        Z+dZ, G d„ de¦  «        Z-eee.df         eee                  ee.ef         f         Z/ G d„ de)¦  «        Z0d#d„Z1d#d„Z2d#d „Z3d#d!„Z4d"Z5dS )$zBCustomize argparse logic for tox (also contains the base options).é    )ÚannotationsN)ÚSUPPRESSÚActionÚArgumentDefaultsHelpFormatterÚArgumentErrorÚArgumentParserÚ	Namespace)ÚPath)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚListÚLiteralÚOptionalÚSequenceÚTupleÚTypeÚTypeVarÚcast)Ú
StrConvert)ÚNAME)Úis_cié   )Úget_env_var)Ú	IniConfig)ÚStatec                  óZ   ‡ — e Zd ZdZdˆ fd„Zdd„Zdd„Zedd„¦   «         Z	 	 ddd„Z	ˆ xZ
S )ÚArgumentParserWithEnvAndConfigzkArgument parser which updates its defaults by checking the configuration files and environmental variables.Úargsr   ÚkwargsÚreturnÚNonec                ó°   •— d|v r|                      d¦  «        nt          ¦   «         | _        | j        j        |d<    t	          ¦   «         j        |i |¤Ž d S )NÚfile_configÚepilog)Úpopr   r%   r&   ÚsuperÚ__init__)Úselfr    r!   Ú	__class__s      €úI/var/www/piapp/venv/lib/python3.11/site-packages/tox/config/cli/parser.pyr)   z'ArgumentParserWithEnvAndConfig.__init__   s_   ø€ à8EÈÐ8OÐ8O˜6Ÿ:š: mÑ4Ô4Ð4ÕU^ÑU`ÔU`ˆÔØÔ+Ô2ˆˆxÑØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)ó    c                óD   — | j         D ]}|                      |¦  «         Œd S ©N)Ú_actionsÚfix_default)r*   Úactions     r,   Úfix_defaultsz+ArgumentParserWithEnvAndConfig.fix_defaults"   s4   € Ø”mð 	%ð 	%ˆFØ×Ò˜VÑ$Ô$Ð$Ð$ð	%ð 	%r-   r2   r   c                ó  — t          |d¦  «        r…t          |d¦  «        ru|j        t          k    re|                      |¦  «        }|j        }t          ||¬¦  «        }|€#| j        r| j                             ||¬¦  «        }|�|\  |_        }||_        t          |t          j        ¦  «        rV|j                             ¦   «         D ]>}t          |t          ¦  «        sd}t          |¦  «        ‚|                     ¦   «          Œ=d S d S )NÚdefaultÚdest©Úof_typez;detected sub-parser added without using our own add command)Úhasattrr5   r   Úget_typer6   r   r%   ÚgetÚdefault_sourceÚ
isinstanceÚargparseÚ_SubParsersActionÚchoicesÚvaluesÚ	ToxParserÚRuntimeErrorr3   )r*   r2   r8   ÚkeyÚoutcomeÚdefault_valuerA   Úmsgs           r,   r1   z*ArgumentParserWithEnvAndConfig.fix_default&   s  € Ý�6˜9Ñ%Ô%ð 	6­'°&¸&Ñ*AÔ*Að 	6ÀfÄnÕX`ÒF`ÐF`Ø—m’m FÑ+Ô+ˆGØ”+ˆCÝ! #¨wÐ7Ñ7Ô7ˆGØˆ 4Ô#3ˆØÔ*×.Ò.¨s¸GÐ.ÑDÔD�ØÐ"Ø07Ñ-�” Ø(5�Ô%Ý�f�hÔ8Ñ9Ô9ð 	&Ø œ.×/Ò/Ñ1Ô1ð &ð &�Ý! &­)Ñ4Ô4ð ,ØW�CÝ& sÑ+Ô+Ð+Ø×#Ò#Ñ%Ô%Ð%Ð%ð	&ð 	&ð&ð &r-   ú	type[Any]c                óH  — t          | dd ¦  «        }|�€t          | t          j        ¦  «        rt          | j                 }nàt          | t          j        ¦  «        re| j        r^t          ¦   «         }t          |d<   dd 
                    d„ | j        D ¦   «         ¦  «        › d�}t          |t          ¦   «         |¦  «        }na| j        �t          | j        ¦  «        }nEt          | t          j        ¦  «        r| j        �t          | j        ¦  «        }nt!          | ¦  «        ‚|S )Nr8   r   zLiteral[z, c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r/   )Úrepr)Ú.0Úis     r,   ú	<genexpr>z:ArgumentParserWithEnvAndConfig.get_type.<locals>.<genexpr>@   s(   è è € Ð1RÐ1R¸aµ$°q±'´'Ð1RÐ1RÐ1RÐ1RÐ1RÐ1Rr-   ú])Úgetattrr=   r>   Ú_AppendActionr   ÚtypeÚ_StoreActionr@   Úlocalsr   ÚjoinÚevalÚglobalsr5   Ú_StoreConstActionÚconstÚ	TypeError)r2   r8   ÚlocÚ
as_literals       r,   r:   z'ArgumentParserWithEnvAndConfig.get_type7   s  € å$+¨F°I¸tÑ$DÔ$DˆØ‰?Ý˜&¥(Ô"8Ñ9Ô9ð (Ý˜vœ{Ô+��Ý˜F¥HÔ$9Ñ:Ô:ð 
(¸v¼~ð 
(Ý‘h”h�Ý!(��I‘ØU¨¯	ª	Ð1RÐ1RÀ6Ä>Ð1RÑ1RÔ1RÑ(RÔ(RÐUÐUÐU�
Ý˜z­7©9¬9°cÑ:Ô:��Ø”Ð+Ý˜vœ~Ñ.Ô.��Ý˜F¥HÔ$>Ñ?Ô?ð (ÀFÄLÐD\Ý˜vœ|Ñ,Ô,��å Ñ'Ô'Ð'Øˆr-   NúSequence[str] | NoneÚ	namespaceúNamespace | Noner	   c                ó”   — |                       ||¦  «        \  }}|r,|                      dd                     |¦  «        › d�¦  «         |S )Nzunrecognized arguments: ú zX
hint: if you tried to pass arguments to a command use -- to separate them from tox ones)Úparse_known_argsÚerrorrU   )r*   r    r^   ÚresÚargvs        r,   Ú
parse_argsz)ArgumentParserWithEnvAndConfig.parse_argsJ   sf   € ð
 ×)Ò)¨$°	Ñ:Ô:‰	ˆˆTØð 	Ø�JŠJðj¨3¯8ª8°D©>¬>ð jð jð jñô ð ð ˆ
r-   )r    r   r!   r   r"   r#   ©r"   r#   )r2   r   r"   r#   )r2   r   r"   rH   ©NN)r    r]   r^   r_   r"   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   r3   r1   Ústaticmethodr:   rf   Ú__classcell__©r+   s   @r,   r   r      s¬   ø€ € € € € ØuÐuð*ð *ð *ð *ð *ð *ð%ð %ð %ð %ð&ð &ð &ð &ð" ðð ð ñ „\ðð( &*Ø&*ðð ð ð ð ð ð ð ð r-   r   c                  ó8   ‡ — e Zd ZdZdˆ fd„Zdˆ fd
„Zdd„Zˆ xZS )ÚHelpFormatterzNA help formatter that provides the default value and the source it comes from.ÚprogÚstrr"   r#   c                óP   •— t          ¦   «                              |dd¬¦  «         d S )Né   éð   )Úmax_help_positionÚwidth)r(   r)   )r*   rr   r+   s     €r,   r)   zHelpFormatter.__init__[   s(   ø€ Ý‰Œ×Ò˜°¸3ÐÑ?Ô?Ð?Ð?Ð?r-   r2   r   ú
str | Nonec                óÒ   •— t          ¦   «                              |¦  «        pd}t          |d¦  «        r2d}|                     |¦  «        r|d t	          |¦  «         …         › d�}|S )NÚ r<   z (default: %(default)s)z2 (default: %(default)s -> from %(default_source)s))r(   Ú_get_help_stringr9   ÚendswithÚlen)r*   r2   Útextr5   r+   s       €r,   r|   zHelpFormatter._get_help_string^   sq   ø€ Ý‘G”G×,Ò,¨VÑ4Ô4Ð:¸ˆÝ�6Ð+Ñ,Ô,ð 	dØ/ˆGØ�}Š}˜WÑ%Ô%ð dØ˜¥# g¡,¤, ˜Ô/ÐcÐcÐc�Øˆr-   r   c                óZ   — dd„}|t           ur|�|                      ||g¦  «         d S d S d S )NÚcontentrs   r"   c                ó   — | S r/   © )r�   s    r,   Úkeepz(HelpFormatter.add_raw_text.<locals>.keepg   s   € ØˆNr-   )r�   rs   r"   rs   )r   Ú	_add_item)r*   r   r„   s      r,   Úadd_raw_textzHelpFormatter.add_raw_textf   sR   € ð	ð 	ð 	ð 	ð •xÐÐ DÐ$4Ø�NŠN˜4 $ Ñ(Ô(Ð(Ð(Ð(ð  ÐÐ$4Ð$4r-   )rr   rs   r"   r#   )r2   r   r"   ry   )r   ry   r"   r#   )ri   rj   rk   rl   r)   r|   r†   rn   ro   s   @r,   rq   rq   X   s{   ø€ € € € € ØXÐXð@ð @ð @ð @ð @ð @ðð ð ð ð ð ð)ð )ð )ð )ð )ð )ð )ð )r-   rq   Ú
ToxParserTrB   )Úboundé   c                  óN   — e Zd ZU dZed	d„¦   «         Zed
d„¦   «         Zded<   dS )ÚParsedzCLI options.r"   Úintc                ó@   — t          | j        | j        z
  d¦  «        }|S )z:return: reporting verbosityr   )ÚmaxÚverboseÚquiet)r*   Úresults     r,   Ú	verbosityzParsed.verbosityu   s!   € õ ˜$œ,¨¬Ñ3°QÑ7Ô7ˆØˆr-   Úboolc                ó>   — t          t          | j        dk    ¦  «        S )z8:return: flag indicating if the output is colored or notÚyes)r   r“   Úcolored©r*   s    r,   Ú
is_coloredzParsed.is_colored{   s   € õ •D˜$œ,¨%Ò/Ñ0Ô0Ð0r-   Úexit_and_dump_afterN)r"   rŒ   )r"   r“   )ri   rj   rk   rl   Úpropertyr’   r˜   Ú__annotations__rƒ   r-   r,   r‹   r‹   r   sd   € € € € € € ØÐàðð ð ñ „Xðð
 ð1ð 1ð 1ñ „Xð1ð ÐÐÑÐÐr-   r‹   .c                  ó¤   ‡ — e Zd ZdZdddœd*ˆ fd„Zd+d„Zd,d„Zd-ˆ fd„Zddœd.ˆ fd„Ze	d/d"„¦   «         Z
e	d/d#„¦   «         Zd0d$„Z	 	 d1d2ˆ fd)„Zˆ xZS )3rB   zArgument parser for tox.F)ÚrootÚadd_cmdr    r   r�   r“   rž   r!   r"   r#   c               ó*  •— d | _         i | _        g | _        g | _         t	          ¦   «         j        |i |¤Ž |du r|                      ¦   «          |du r9d}|                      d|d¬¦  «        | _        d| j        _	        d| j        _
        d S d | _        d S )NTz*tox command to execute (by default legacy)ÚsubcommandsÚcommand)ÚtitleÚdescriptionr6   FÚlegacy)Úof_cmdÚhandlersÚ
_argumentsÚ_groupsr(   r)   Ú_add_base_optionsÚadd_subparsersÚ_cmdÚrequiredr5   )r*   r�   rž   r    r!   rG   r+   s         €r,   r)   zToxParser.__init__‰   s§   ø€ Ø"&ˆŒØGIˆŒØ.0ˆŒØjlˆŒØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ø�4ˆ<ˆ<Ø×"Ò"Ñ$Ô$Ð$Ø�dˆ?ˆ?Ø>ˆCØ$(×$7Ò$7¸mÐY\ÐclÐ$7Ñ$mÔ$mˆDŒIØ!&ˆDŒIÔØ (ˆDŒIÔÐÐàˆDŒIˆIˆIr-   Úcmdrs   ÚaliasesúSequence[str]Úhelp_msgÚhandlerúCallable[[State], int]r   c                óÀ  — | j         €d}t          |¦  «        ‚| j                              |||t          | j        ¬¦  «        }||_        ||f}|| j        |<   |D ]}|| j        |<   Œ| j        D ]\  }	}
} |j        |	d|
i|¤Ž Œ| j	        D ]>\  }	}} |j
        |	i |¤Ž}|D ](\  }} |j        di |¤Ž}|D ]\  }}} |j        |i |¤Ž ŒŒ)Œ?|                      |¦  «         |S )Nzno sub-command group allowed)Úhelpr®   Úformatter_classr%   r8   rƒ   )r«   rC   Ú
add_parserrq   r%   r¥   r¦   r§   Úadd_argumentr¨   Úadd_argument_groupÚadd_mutually_exclusive_groupÚ_add_provision_arguments)r*   r­   r®   r°   r±   rG   Ú
sub_parserr�   Úaliasr    r8   r!   ÚexclÚgroupÚe_kwargsÚ	argumentsÚ
excl_groupÚa_argsÚ_Úa_kwargss                       r,   Úadd_commandzToxParser.add_command™   s  € ð Œ9ÐØ0ˆCÝ˜sÑ#Ô#Ð#Ø $¤	× 4Ò 4ØØØÝ)ØÔ(ð !5ñ !
ô !
ˆ
ð  ˆ
ÔØ˜gÐ%ˆØ$ˆŒ�cÑØð 	+ð 	+ˆEØ#*ˆDŒM˜%Ñ Ð Ø%)¤_ð 	Fð 	FÑ!ˆD�'˜6Ø#ˆJÔ# TÐE°7ÐE¸fÐEÐEÐEÐEØ"&¤,ð 	Að 	AÑˆD�&˜$Ø1�JÔ1°4ÐB¸6ÐBÐBˆEØ'+ð Að AÑ#�˜)Ø?˜UÔ?ÐKÐKÀ(ÐKÐK�
Ø+4ð Að AÑ'�F˜A˜xØ+�JÔ+¨VÐ@°xÐ@Ð@Ð@Ð@ðAðAð 	×%Ò% jÑ1Ô1Ð1ØÐr-   r»   c           	     ó–  — |                      dddt          d d¬¦  «          G d„ dt          ¦  «        }t          j                             dd	¦  «        d	k    r t          t          j        d         ¦  «        }n't          j        d
t          j
        dk    rdnd¦  «        }|                      ddd|t          t                   |d¬¦  «         |                      ddddt          t                   dg ¬¦  «         |                     ¦   «         }|                      ddt          ¦   «         d¬¦  «         |                      dddd¬ ¦  «         d S )!Nz--result-jsonÚresult_jsonÚpathzSwrite a JSON file with detailed information about all commands and results involved)r6   Úmetavarr8   r5   r´   c                  ó   — e Zd Z	 ddd„ZdS )ú6ToxParser._add_provision_arguments.<locals>.SeedActionNÚparserr   r^   r	   rA   ústr | Sequence[Any] | NoneÚoption_stringry   r"   r#   c                ó  — |dk    rd }nk	 t          t          t          |¦  «        ¦  «        }|dk    rd}t          |¦  «        ‚n0# t          $ r#}t	          | t          |¦  «        ¦  «        |‚d }~ww xY wt          || j        |¦  «         d S )NÚnotsetr   zmust be greater than zero)rŒ   r   rs   Ú
ValueErrorr   Úsetattrr6   )r*   rÌ   r^   rA   rÎ   r‘   rG   Úexcs           r,   Ú__call__z?ToxParser._add_provision_arguments.<locals>.SeedAction.__call__Å   s©   € ð ˜XÒ%Ð%Ø!�F�FðEÝ!$¥T­#¨vÑ%6Ô%6Ñ!7Ô!7˜Ø! Qš;˜;Ø"=˜CÝ",¨S¡/¤/Ð1ð 'øõ &ð Eð Eð EÝ+¨Dµ#°c±(´(Ñ;Ô;ÀÐDøøøøðEøøøå˜	 4¤9¨fÑ5Ô5Ð5Ð5Ð5s   ‹9A Á
A2ÁA-Á-A2r/   )
rÌ   r   r^   r	   rA   rÍ   rÎ   ry   r"   r#   )ri   rj   rk   rÔ   rƒ   r-   r,   Ú
SeedActionrË   Ä   s2   € € € € € ð -1ð6ð 6ð 6ð 6ð 6ð 6ð 6r-   rÕ   ÚPYTHONHASHSEEDÚrandomr   Úwin32i   l   ÿÿ z
--hashseedÚSEEDz°set PYTHONHASHSEED to SEED before running commands. Defaults to a random integer in the range [1, 4294967295] ([1, 1024] on Windows). Passing 'notset' suppresses this behavior.Ú	hash_seed)rÉ   r´   r2   r8   r5   r6   z
--discoverÚdiscoverú+z7for Python discovery first try these Python executables)r6   ÚnargsrÉ   r8   r´   r5   z--list-dependenciesÚ
store_truez8list the dependencies installed during environment setup)r2   r5   r´   z--no-list-dependenciesÚstore_falseÚlist_dependenciesz>never list the dependencies installed during environment setup)r2   r6   r´   )r·   r
   r   ÚosÚenvironr;   rŒ   r×   ÚrandintÚsysÚplatformr   r   rs   r¹   r   )r*   r»   rÕ   Úhashseed_defaultÚ	list_depss        r,   rº   z"ToxParser._add_provision_argumentsº   s›  € Ø×ÒØØØÝØØfð 	 ñ 	
ô 	
ð 	
ð	6ð 	6ð 	6ð 	6ð 	6�ñ 	6ô 	6ð 	6õ( Œ:�>Š>Ð*¨HÑ5Ô5¸ÒAÐAÝ"¥2¤:Ð.>Ô#?Ñ@Ô@ÐÐå%œ~¨a½¼ÈÒ9PÐ9P°°ÐV`ÑaÔaÐØ×ÒØØðaàÝ�S”MØ$Øð 	 ñ 		
ô 		
ð 		
ð 	×ÒØØØØÝ�”IØJØð 	 ñ 	
ô 	
ð 	
ð ×;Ò;Ñ=Ô=ˆ	Ø×ÒØ!ØÝ‘G”GØKð	 	ñ 	
ô 	
ð 	
ð 	×ÒØ$Ø Ø$ØQð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r-   c                óÀ   •‡‡‡—  t          ¦   «         j        |i ‰¤Ž}| j        €9|dvr5dˆˆˆfd„}|j        Š||_        g Š| j                             |‰‰f¦  «         |S )N>   ©zoptional arguments©zpositional argumentsr¿   r   r"   c                 ó~   •‡‡— d dœdˆˆfd
„}g Š‰                      | ‰f¦  «          ‰di ‰¤Ž}|j        Š||_        |S )Nr7   rÂ   rs   r8   útype[Any] | NonerÄ   r   r"   r   c                óH   •—  ‰|i |¤Ž}‰                      || |f¦  «         |S r/   )Úappend)r8   rÂ   rÄ   Úres_argsrÀ   Úprev_add_args       €€r,   r·   zXToxParser.add_argument_group.<locals>.add_mutually_exclusive_group.<locals>.add_argument  s7   ø€ Ø'3 |°VÐ'H¸xÐ'HÐ'H�HØ×$Ò$ f¨g°xÐ%@ÑAÔAÐAØ#�Or-   )rÂ   rs   r8   rì   rÄ   r   r"   r   rƒ   )rî   r·   )r¿   r·   Úres_exclrÀ   rð   r½   r!   Ú	prev_excls      @@€€€r,   r¹   zBToxParser.add_argument_group.<locals>.add_mutually_exclusive_group  s}   øøø€ ØKOð $ð $ð $ð $ð $ð $ð $ð $ð $ð
 13�	Ø—’˜X yÐ1Ñ2Ô2Ð2Ø$˜9Ð.Ð. vÐ.Ð.�Ø'Ô4�Ø(4�Ô%Ø�r-   )r¿   r   r"   r   )r(   r¸   r¥   r¹   r¨   rî   )r*   r    r!   r‘   r¹   r½   rò   r+   s     `  @@€r,   r¸   zToxParser.add_argument_groupý   s•   øøøø€ Ø+•‘”Ô+¨TÐ<°VÐ<Ð<ˆØŒ;Ð 4Ð/cÐ#cÐ#cð ð  ð  ð  ð  ð  ð  ð  ð Ô;ˆIØ2NˆFÔ/ØDFˆDØŒL×Ò  v¨tÐ 4Ñ5Ô5Ð5Øˆr-   Nr7   r8   rì   r   c               óš  •—  t          ¦   «         j        |i |¤Ž}| j        € |j        dk    r•| j                             |||f¦  «         t          | d¦  «        rh| j        �at          | j        d¦  «        rLd„ | j        j         	                    ¦   «         D ¦   «          
                    ¦   «         D ]} |j        |d|i|¤Ž Œ|�||_        |S )Nr´   r«   r@   c                ó4   — i | ]\  }}t          |¦  «        |“ŒS rƒ   )Úid)rL   ÚkÚvs      r,   ú
<dictcomp>z*ToxParser.add_argument.<locals>.<dictcomp>  s$   € ÐNÐNÐN©D¨A¨q�r !™uœu aÐNÐNÐNr-   r8   )r(   r·   r¥   r6   r§   rî   r9   r«   r@   ÚitemsrA   r8   )r*   r8   r    r!   r‘   rÌ   r+   s         €r,   r·   zToxParser.add_argument  sé   ø€ Ø%•‘”Ô% tÐ6¨vÐ6Ð6ˆØŒ;Ð 6¤;°&Ò#8Ð#8ØŒO×"Ò" D¨'°6Ð#:Ñ;Ô;Ð;Ý�t˜VÑ$Ô$ð J¨¬Ð)>Å7È4Ì9ÐV_ÑC`ÔC`Ð)>ØNÐN°D´IÔ4E×4KÒ4KÑ4MÔ4MÐNÑNÔN×UÒUÑWÔWð Jð J�FØ'�FÔ'¨ÐI°wÐIÀ&ÐIÐIÐIÐIØÐØ$ˆFŒNØˆr-   Úclsútype[ToxParserT]r‡   c                ó   —  | dd¬¦  «        S )NFT)Úadd_helpr�   rƒ   ©rú   s    r,   ÚbasezToxParser.base  s   € àˆs˜E¨Ð-Ñ-Ô-Ð-r-   c                ó6   —  | t           t          ddd¬¦  «        S )NTz8create and set up environments to run command(s) in them)rr   rµ   rž   r�   r£   )r   rq   rþ   s    r,   ÚcorezToxParser.core#  s*   € àˆsÝÝ)ØØØRð
ñ 
ô 
ð 	
r-   c                óL   — t          | ¦  «         |                      ¦   «          dS )z(Argument options that always make sense.N)Úadd_core_argumentsr3   r—   s    r,   r©   zToxParser._add_base_options-  s(   € å˜4Ñ Ô Ð Ø×ÒÑÔÐÐÐr-   r]   r^   úParsed | Noneútuple[Parsed, list[str]]c                ó°  •— |€t           j        dd …         }d }| j        �+|r)t          |¦  «        D ]\  }}|| j        j        v r|} nŒd }|�"||         g|d |…         ¢||dz   d …         ¢R }n,t          |¦  «        dvr| j        �d| j        j        v rdg|¢R }|€t          ¦   «         n|}t          ¦   «                              ||¬¦  «        \  }}||fS )Nr   >   ©z-h©z--helpr¤   )r^   )	rä   re   r«   Ú	enumerater@   Útupler‹   r(   rb   )	r*   r    r^   Úcmd_atÚatÚargr‘   rÃ   r+   s	           €r,   rb   zToxParser.parse_known_args2  s  ø€ ð
 ˆ<Ý”8˜A˜B˜B”<ˆDØ!ˆØŒ9Ð  TÐ Ý$ T™?œ?ð ð ‘��CØ˜$œ)Ô+Ð+Ð+Ø�FØ�Eð ,ð �ØÐØ˜”<ÐD $ w¨ w¤-ÐD°$°vÀ±z°|°|Ô2DÐDÐDˆDˆDÝ�4‰[Œ[Ð 6Ð6Ð6¸D¼IÐ<QÐV^ÐbfÔbkÔbsÐVsÐVsà�?˜d�?�?ˆDØ&Ð.•‘”�°IˆÝ‘'”'×*Ò*¨4¸6Ð*ÑBÔB‰ˆˆ4Ø�tˆ|Ðr-   )
r    r   r�   r“   rž   r“   r!   r   r"   r#   )
r­   rs   r®   r¯   r°   rs   r±   r²   r"   r   )r»   rB   r"   r#   )r    r   r!   r   r"   r   )r    rs   r8   rì   r!   r   r"   r   )rú   rû   r"   r‡   rg   rh   )r    r]   r^   r  r"   r  )ri   rj   rk   rl   r)   rÅ   rº   r¸   r·   Úclassmethodrÿ   r  r©   rb   rn   ro   s   @r,   rB   rB   †   sL  ø€ € € € € Ø"Ð"à05Àuð ð ð ð ð ð ð ð ð ð ð ð ðBA
ð A
ð A
ð A
ðFð ð ð ð ð ð. DHð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð ð.ð .ð .ñ „[ð.ð ð
ð 
ð 
ñ „[ð
ðð ð ð ð &*Ø#'ðð ð ð ð ð ð ð ð ð ð r-   rÌ   r   r"   r#   c                óª  — ddl m} d                     d„ t          |                     ¦   «         ¦  «        D ¦   «         ¦  «        }|                      d¦  «        }dt          j        |t                   ¦  «        › d|› �|_	        | 
                    ¦   «         }|                     dd	d
ddt          ¬¦  «         |                     ddd
ddd¬¦  «         d S )Nr   )ÚLEVELSú|c              3  óN   K  — | ] \  }}|› d t          j        |¦  «        › �V — Œ!dS )ú=N)ÚloggingÚgetLevelName)rL   ÚcÚlevels      r,   rN   z&add_verbosity_flags.<locals>.<genexpr>N  s?   è è € ÐeÐeÁ(À!ÀU˜AÐ=Ð=¥Ô 4°UÑ ;Ô ;Ð=Ð=ÐeÐeÐeÐeÐeÐer-   r’   z@every -v increases, every -q decreases verbosity level, default z, map z-vz	--verboseÚcountr�   zincrease verbosity)r2   r6   r´   r5   z-qz--quietr�   zdecrease verbosity)Ú
tox.reportr  rU   Úsortedrù   r¸   r  r  ÚDEFAULT_VERBOSITYr£   r¹   r·   )rÌ   r  Ú	level_mapÚverbosity_groupr’   s        r,   Úadd_verbosity_flagsr  K  s  € Ø!Ð!Ð!Ð!Ð!Ð!à—’ÐeÐeÍfÐU[×UaÒUaÑUcÔUcÑNdÔNdÐeÑeÔeÑeÔe€IØ×/Ò/°Ñ<Ô<€Oð	VÝÔ'¨Õ/@Ô(AÑBÔBð	Vð 	VØJSð	Vð 	Vð Ôð  ×<Ò<Ñ>Ô>€IØ×ÒØØØØØ!Ý!ð ñ ô ð ð ×Ò˜4 °7ÀÐOcÐmnÐÑoÔoÐoÐoÐor-   c                óœ  — t          ¦   «         }t          j                             dd¦  «        rd}n|                     t          j                             dd¦  «        ¦  «        rd}nIt          j                             dd¦  «        dk    rd}n"t
          j                             ¦   «         rdnd}|                      d|ddgd	¬
¦  «         d S )NÚNO_COLORr{   ÚnoÚFORCE_COLORr•   ÚTERMÚdumbz	--coloredz^should output be enriched with colors, default is yes unless TERM=dumb or NO_COLOR is defined.)r5   r@   r´   )	r   rá   râ   r;   Úto_boolrä   ÚstdoutÚisattyr·   )rÌ   Ú	converterÚcolors      r,   Úadd_color_flagsr*  `  sÌ   € Ý‘”€IÝ	„z‡~‚~�j "Ñ%Ô%ð 7ØˆˆØ	×	Ò	�2œ:Ÿ>š>¨-¸Ñ<Ô<Ñ	=Ô	=ð 7ØˆˆÝ	Œ�Š˜ Ñ	#Ô	# vÒ	-Ð	-Øˆˆåœ×*Ò*Ñ,Ô,Ð6��°$ˆà
×ÒØØØ˜�Ømð	 ñ ô ð ð ð r-   c                óF   — |                       ddddt          d¬¦  «         d S )Nz--exit-and-dump-afterr™   Úsecondsr   zddump tox threads after n seconds and exit the app - useful to debug when tox hangs, 0 means disabled)r6   rÉ   r5   rR   r´   )r·   rŒ   ©rÌ   s    r,   Úadd_exit_and_dump_afterr.  s  s;   € Ø
×ÒØØ"ØØÝØsð ñ ô ð ð ð r-   c           
     óˆ  — t          | ¦  «         t          | ¦  «         t          | ¦  «         |                      ddddd t          t
          t                   d¬¦  «         |                      ddd	d t          t
          t                   d
¬¦  «         |                      ddd	d t          t
          t                   d¬¦  «         d S )Nz-cz--confÚconfig_fileÚfilezFconfiguration file/folder for tox (if not specified will discover one))r6   rÉ   r5   rR   r8   r´   z	--workdirÚwork_dirÚdirzNtox working directory (if not specified will be the folder of the config file)z--rootÚroot_dirzOproject root directory (if not specified will be the folder of the config file))r*  r  r.  r·   r
   r   r-  s    r,   r  r  ~  sß   € Ý�FÑÔÐÝ˜ÑÔÐÝ˜FÑ#Ô#Ð#Ø
×ÒØØØØØÝÝ�”ØUð ñ 	ô 	ð 	ð ×ÒØØØØÝÝ�”Ø]ð ñ ô ð ð ×ÒØØØØÝÝ�”Ø^ð ñ ô ð ð ð r-   )r  rq   r‹   rB   )rÌ   r   r"   r#   )6rl   Ú
__future__r   r>   r  rá   r×   rä   r   r   r   r   r   r	   Úpathlibr
   Útypingr   r   r   r   r   r   r   r   r   r   r   r   Útox.config.loader.str_convertr   Ú
tox.pluginr   Útox.util.cir   Úenv_varr   Úinir   Útox.session.stater   r   rq   r‡   r  r‹   rs   ÚArgumentArgsrB   r  r*  r.  r  Ú__all__rƒ   r-   r,   ú<module>r@     s°  ðØ HÐ Hà "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nÐ nØ Ð Ð Ð Ð Ð Ø tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tÐ tà 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð àð (Ø'Ð'Ð'Ð'Ð'Ð'ð<ð <ð <ð <ð < ^ñ <ô <ð <ð~)ð )ð )ð )ð )Ð1ñ )ô )ð )ð, ˆW�\¨Ð5Ñ5Ô5€
ØÐ ðð ð ð ð ˆYñ ô ð ð" �U˜3 ˜8”_ h¨t°C¬yÔ&9¸4ÀÀSÀ¼>ÐIÔJ€ðBð Bð Bð Bð BÐ.ñ Bô Bð BðJpð pð pð pð*ð ð ð ð&ð ð ð ðð ð ð ðD€€€r-   