§
    ÖŽ’jH(  ã                  ó"  — d Z ddlmZ ddlZddlmZ 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 ddlmZ ddlZ G d„ dej        ¦  «        Zd d„Z ej        d¬¦  «        d!d„¦   «         Zd"d„Zd#d„Zd"d„Zd$d„Zd$d„ZdS )%z3Version info, help messages, tracing configuration.é    )ÚannotationsN)Ú	Generator)ÚSequence)ÚAny)ÚConfig)ÚExitCode)Ú	PrintHelp)ÚParser)ÚTerminalReporterc                  ó6   ‡ — e Zd ZdZddœdˆ fd„Z	 ddd„Zˆ xZS )Ú
HelpActiona2  An argparse Action that will raise a PrintHelp exception in order to skip
    the rest of the argument parsing when --help is passed.

    This prevents argparse from raising UsageError when `--help` is used along
    with missing required arguments when any are defined, for example by
    ``pytest_addoption``. This is similar to the way that the builtin argparse
    --help option is implemented by raising SystemExit.

    To opt in to this behavior, the parse caller must set
    `namespace._raise_print_help = True`. Otherwise it just sets the option.
    N)ÚhelpÚoption_stringsúSequence[str]ÚdestÚstrr   ú
str | NoneÚreturnÚNonec               óV   •— t          ¦   «                              ||ddd|¬¦  «         d S )Nr   TF)r   r   ÚnargsÚconstÚdefaultr   )ÚsuperÚ__init__)Úselfr   r   r   Ú	__class__s       €ú@C:\Projects\DSCons\.venv\Lib\site-packages\_pytest\helpconfig.pyr   zHelpAction.__init__"   sB   ø€ õ 	‰Œ×ÒØ)ØØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
ó    Úparserúargparse.ArgumentParserÚ	namespaceúargparse.NamespaceÚvaluesústr | Sequence[Any] | NoneÚoption_stringc                ól   — t          || j        | j        ¦  «         t          |dd¦  «        rt          ‚d S )NÚ_raise_print_helpF)Úsetattrr   r   Úgetattrr	   )r   r    r"   r$   r&   s        r   Ú__call__zHelpAction.__call__.   s>   € õ 	�	˜4œ9 d¤jÑ1Ô1Ð1å�9Ð1°5Ñ9Ô9ð 	ÝˆOð	ð 	r   )r   r   r   r   r   r   r   r   )N)
r    r!   r"   r#   r$   r%   r&   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r+   Ú__classcell__)r   s   @r   r   r      sv   ø€ € € € € ð
ð 
ð OSð

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð" %)ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r   r   r    r
   r   r   c           	     ó¬  — |                       d¦  «        }|                     dddddd¬¦  «         |                     d	d
t          dd¬¦  «         |                     dddg dd¬¦  «         |                     dddd¬¦  «         |                     ddddd¬¦  «         |                     ddddd d!d"¬#¦  «         |                     d$d%d&dd'¬(¦  «         d S ))NÚdebugconfigz-Vz	--versionÚcountr   ÚversionzoDisplay pytest version and information about plugins. When given twice, also display information about plugins.)Úactionr   r   r   z-hz--helpr   z(Show help message and configuration info)r5   r   r   z-pÚappendÚpluginsÚnamez­Early-load given plugin module name or entry point (multi-allowed). To avoid loading of plugins, use the `no:` prefix, e.g. `no:doctest`. See also --disable-plugin-autoload.)r5   r   r   Úmetavarr   z--disable-plugin-autoloadÚ
store_trueFz•Disable plugin auto-loading through entry point packaging metadata. Only plugins explicitly specified in -p or env var PYTEST_PLUGINS will be loaded.)r5   r   r   z--traceconfigz--trace-configz)Trace considerations of conftest.py filesz--debugÚstoreú?zpytestdebug.logÚdebugÚDEBUG_FILE_NAMEzšStore internal tracing debug information in this log file. This file is opened with 'w' and truncated as a result, care advised. Default: pytestdebug.log.)r5   r   r   r   r9   r   z-oz--override-iniÚoverride_inizhOverride configuration option with "option=value" style, e.g. `-o strict_xfail=True -o cache_dir=cache`.)r   r5   r   )ÚgetgroupÚ	addoptionÚ
_addoptionr   )r    Úgroups     r   Úpytest_addoptionrD   ;   sj  € Ø�OŠO˜MÑ*Ô*€EØ	‡O‚OØØØØØðDð ñ ô ð ð 
×ÒØØÝØØ7ð ñ ô ð ð 
×ÒØØØØØð<ð ñ 	ô 	ð 	ð 
‡O‚OØ#ØØð\ð	 ñ ô ð ð 
‡O‚OØØØØØ8ð ñ ô ð ð 
‡O‚OØØØØØØ!ð$ð ñ 
ô 
ð 
ð 
×ÒØØØØð:ð ñ ô ð ð ð r   T)ÚwrapperúGenerator[None, Config, Config]c               #  ó~  ‡‡‡K  — d V —Š‰j         j        �r&‰j         j        } t          | dd¬¦  «        Š‰                     d                     t
          j        d                     t          t          t          j        ¦  «        ¦  «        ‰j        j        t          j        ¦   «         ‰j        j        ¦  «        ¦  «         ‰j        j                             ‰j        ¦  «         ‰j                             ¦   «         Št          j                             d| › d�¦  «         dˆˆˆfd
„}‰                     |¦  «         ‰S )NÚwzutf-8)Úencodingz@versions pytest-{}, python-{}
invocation_dir={}
cwd={}
args={}

ú.z$writing pytest debug information to ú
r   r   c                 óÒ   •— ‰                      ¦   «          t          j                             d‰j        › d�¦  «         ‰ j        j                             d ¦  «          ‰¦   «          d S )Nz"wrote pytest debug information to rK   )ÚcloseÚsysÚstderrÚwriter8   ÚtraceÚrootÚ	setwriter)ÚconfigÚ	debugfileÚundo_tracings   €€€r   Úunset_tracingz+pytest_cmdline_parse.<locals>.unset_tracing�   s_   ø€ Ø�OŠOÑÔÐÝŒJ×ÒÐTÀ)Ä.ÐTÐTÐTÑUÔUÐUØŒLÔ×'Ò'¨Ñ-Ô-Ð-ØˆL‰NŒNˆNˆNˆNr   )r   r   )Úoptionr=   ÚopenrP   ÚformatÚpytestÚ__version__ÚjoinÚmapr   rN   Úversion_infoÚinvocation_paramsÚdirÚosÚgetcwdÚargsrQ   rR   rS   ÚpluginmanagerÚenable_tracingrO   Úadd_cleanup)ÚpathrW   rT   rU   rV   s     @@@r   Úpytest_cmdline_parseri   z   s=  øøøè è € àˆUˆU€Fà„}Ôñ *àŒ}Ô"ˆÝ˜˜s¨WÐ5Ñ5Ô5ˆ	Ø�Šð@ß@FÂÝÔ"Ø—’��S¥#Ô"2Ñ3Ô3Ñ4Ô4ØÔ(Ô,Ý”	‘”ØÔ(Ô-ñAô Añ		
ô 		
ð 		
ð 	ŒÔ×#Ò# I¤OÑ4Ô4Ð4ØÔ+×:Ò:Ñ<Ô<ˆÝŒ
×ÒÐHÀÐHÐHÐHÑIÔIÐIð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	×Ò˜=Ñ)Ô)Ð)à€Mr   rT   r   c                óî   — t           j                             dt          j        › dt          j        › d�¦  «         t          | ¦  «        }|r'|D ]&}t           j                             |dz   ¦  «         Œ%dS dS )z<Show verbose pytest version installation, including plugins.zThis is pytest version z, imported from rK   N)rN   ÚstdoutrP   r[   r\   Ú__file__Úgetpluginversioninfo)rT   Ú
plugininfoÚlines      r   Úshow_version_verboserp   ›   sŽ   € å„J×ÒØY¥&Ô"4ÐYÐYÅfÄoÐYÐYÐYñô ð õ & fÑ-Ô-€JØð *Øð 	*ð 	*ˆDÝŒJ×Ò˜T D™[Ñ)Ô)Ð)Ð)ð*ð *ð	*ð 	*r   úint | ExitCode | Nonec                óú   — | j         j        dk    rt          | ¦  «         t          j        S | j         j        rC|                      ¦   «          t          | ¦  «         |                      ¦   «          t          j        S d S )Né   )	rX   r4   rp   r   ÚOKr   Ú_do_configureÚshowhelpÚ_ensure_unconfigure)rT   s    r   Úpytest_cmdline_mainrx   ¦   sv   € ð „}Ô˜qÒ Ð Ý˜VÑ$Ô$Ð$ÝŒ{ÐØ	ŒÔ	ð Ø×ÒÑÔÐÝ�ÑÔÐØ×"Ò"Ñ$Ô$Ð$ÝŒ{ÐØˆ4r   c                ó¨  — dd l }| j                             d¦  «        }|€J ‚|j        }|                     | j        j                             ¦   «         ¦  «         |                     ¦   «          |                     d¦  «         |                     ¦   «          |j	        }d}d|z  }| j        j
        D �])}| j        j
        |         \  }}	}
|€t          d|› �¦  «        ‚|› d|	› d�}|                     d	|› �¦  «         t          |¦  «        }||d
z
  k    rI|                     ¦   «          |                     ||||d¬¦  «        }|D ]}|                     |¦  «         ŒŒ®|                     d||z
  dz
  z  ¦  «         |                     |||z
  d¬¦  «        }|r@|                     |d         ¦  «         |dd …         D ]}|                     ||z   ¦  «         Œ�Œ+|                     ¦   «          |                     d¦  «         g d¢}|D ]!\  }}|                     d	|d›d|› �¦  «         Œ"|                     ¦   «          |                     ¦   «          |                     d¦  «         |                     d¦  «         |                     d¦  «         |j                             dg ¦  «        D ]!}|                     d|j        z   d¬¦  «         Œ"d S )Nr   Úterminalreporterzo[pytest] configuration options in the first pytest.toml|pytest.ini|tox.ini|setup.cfg|pyproject.toml file found:é   ú z!help argument cannot be None for z (z):ú  é   F)Úinitial_indentÚsubsequent_indentÚbreak_on_hyphensé   )r�   rs   zEnvironment variables:)	)ÚCIzlWhen set to a non-empty value, pytest knows it is running in a CI process and does not truncate summary info)ÚBUILD_NUMBERzEquivalent to CI)ÚPYTEST_ADDOPTSzExtra command line options)ÚPYTEST_PLUGINSz.Comma-separated plugins to load during startup)ÚPYTEST_DISABLE_PLUGIN_AUTOLOADz"Set to disable plugin auto-loading)ÚPYTEST_DEBUGz1Set to enable debug tracing of pytest's internals)ÚPYTEST_DEBUG_TEMPROOTz'Override the system temporary directory)ÚPYTEST_THEMEz)The Pygments style to use for code output)ÚPYTEST_THEME_MODEz3Set the PYTEST_THEME to be either 'dark' or 'light'z<24z/to see available markers type: pytest --markersz1to see available fixtures type: pytest --fixtureszˆ(shown according to specified file_or_dir or current dir if not specified; fixtures with leading '_' are only shown with the '-v' optionÚwarningsz
warning : T)Úred)Útextwrapre   Ú
get_pluginÚ_twrP   Ú_parserÚ	optparserÚformat_helpro   Ú	fullwidthÚ_inidictÚ	TypeErrorÚlenÚwrapÚstatsÚgetÚmessage)rT   rŽ   ÚreporterÚtwÚcolumnsÚ
indent_lenÚindentr8   r   ÚtypeÚ_defaultÚspecÚspec_lenÚ	helplinesro   ÚwrappedÚvarsÚwarningreports                     r   rv   rv   ´   s@  € Ø€O€O€Oà(.Ô(<×(GÒ(GØñ)ô )€Hð ÐÐÐØ	Œ€BØ‡H‚HˆVŒ^Ô%×1Ò1Ñ3Ô3Ñ4Ô4Ð4Ø‡G‚G�I„I€IØ‡G‚Gð	Nñô ð ð ‡G‚G�I„I€IàŒl€GØ€JØ�:Ñ€FØ”Ô'ð +ñ +ˆØ%œ~Ô6°tÔ<Ñˆˆd�HØˆ<ÝÐFÀÐFÐFÑGÔGÐGØÐ"Ð"˜$Ð"Ð"Ð"ˆØ
�Š��d��ÑÔÐÝ�t‘9”9ˆØ�z A‘~Ò&Ð&à�GŠG‰IŒIˆIØ ŸšØØØ%Ø"(Ø!&ð &ñ ô ˆIð "ð ð �Ø—’˜‘”��ðð �HŠH�S˜J¨Ñ1°AÑ5Ñ6Ñ7Ô7Ð7Ø—m’m D¨'°JÑ*>ÐQV�mÑWÔWˆGàð +Ø—’˜ œ
Ñ#Ô#Ð#Ø# A B BœKð +ð +�DØ—G’G˜F T™MÑ*Ô*Ð*Ð*ùà‡G‚G�I„I€IØ‡G‚GÐ$Ñ%Ô%Ð%ðð ð €Dð ð (ð (‰
ˆˆdØ
�ŠÐ&�TÐ&Ð&Ð& Ð&Ð&Ñ'Ô'Ð'Ð'Ø‡G‚G�I„I€IØ‡G‚G�I„I€Ià‡G‚GÐ=Ñ>Ô>Ð>Ø‡G‚GÐ?Ñ@Ô@Ð@Ø‡G‚Gð	ñô ð ð "œ×+Ò+¨J¸Ñ;Ô;ð @ð @ˆØ
�Š�˜}Ô4Ñ4¸$ˆÑ?Ô?Ð?Ð?ð@ð @r   ú	list[str]c                ó  — g }| j                              ¦   «         }|rg|                     d¦  «         |D ]O\  }}t          |dt	          |¦  «        ¦  «        }|j        › d|j        › d|› �}|                     d|z   ¦  «         ŒP|S )Nzregistered third-party plugins:rl   ú-z at r}   )re   Úlist_plugin_distinfor6   r*   ÚreprÚproject_namer4   )rT   Úlinesrn   ÚpluginÚdistÚlocÚcontents          r   rm   rm     sž   € Ø€EØÔ%×:Ò:Ñ<Ô<€JØð )Ø�ŠÐ6Ñ7Ô7Ð7Ø&ð 	)ð 	)‰LˆF�DÝ˜& *­d°6©l¬lÑ;Ô;ˆCØÔ*ÐDÐD¨T¬\ÐDÐD¸sÐDÐDˆGØ�LŠL˜ ™Ñ(Ô(Ð(Ð(Ø€Lr   c                óÔ  — g }| j         j        s| j         j        rH|                     dt          j        › �¦  «         t          | ¦  «        }|r|                     |¦  «         | j         j        ry|                     d¦  «         | j         	                    ¦   «         }|D ]H\  }}t          |d¦  «        r|j        }nt          |¦  «        }|                     d|d›d|› �¦  «         ŒI|S )Nzusing: pytest-zactive plugins:rl   z    z<20z: )rX   r=   Útraceconfigr6   r[   r\   rm   Úextendre   Úlist_name_pluginÚhasattrrl   r­   )rT   r¯   ÚverinfoÚitemsr8   r°   Úrs          r   Úpytest_report_headerr¼     s   € Ø€EØ„}Ôð "˜fœmÔ7ð "Ø�ŠÐ:¥fÔ&8Ð:Ð:Ñ;Ô;Ð;å& vÑ.Ô.ˆØð 	"Ø�LŠL˜Ñ!Ô!Ð!à„}Ô ð 1Ø�ŠÐ&Ñ'Ô'Ð'ØÔ$×5Ò5Ñ7Ô7ˆØ!ð 	1ð 	1‰LˆD�&Ý�v˜zÑ*Ô*ð !Ø”O��å˜‘L”L�Ø�LŠLÐ/ Ð/Ð/Ð/¨AÐ/Ð/Ñ0Ô0Ð0Ð0Ø€Lr   )r    r
   r   r   )r   rF   )rT   r   r   r   )rT   r   r   rq   )rT   r   r   r©   )r/   Ú
__future__r   ÚargparseÚcollections.abcr   r   rb   rN   Útypingr   Ú_pytest.configr   r   r	   Ú_pytest.config.argparsingr
   Ú_pytest.terminalr   r[   ÚActionr   rD   Úhookimplri   rp   rx   rv   rm   r¼   © r   r   ú<module>rÇ      s»  ðà 9Ð 9à "Ð "Ð "Ð "Ð "Ð "à €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø $Ð $Ð $Ð $Ð $Ð $Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ø #Ð #Ð #Ð #Ð #Ð #Ø $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø -Ð -Ð -Ð -Ð -Ð -Ø €€€ð#ð #ð #ð #ð #�”ñ #ô #ð #ðL<ð <ð <ð <ð~ €„˜ÐÑÔðð ð ñ Ôðð@*ð *ð *ð *ðð ð ð ðP@ð P@ð P@ð P@ðf	ð 	ð 	ð 	ðð ð ð ð ð r   