+
    -j                       R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ RIH
t
 ^ RIt^ RIt^ RIHt ^ RIt^ R	IHt ^ RIt^ RIt^ RIt^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIt^ RIt^ RIH t  ^ RIH!t! ^ RIH"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^ RI)H*t* ^ RI+t^ RI,H-t- ^ RI.H/t/ ^ RI.H0t0 ^ RI.H1t1 ^ RI.H2t2 ^ RI3H4t4 ^ RI5H6t6 ^ RI5H7t7 ^ R I8H9t9 ^ R!I8H:t: ^ R"I;H<t< ^ R#I;H=t= ^ R$I;H>t> ]'       d   ^ R%I?H@t@ R&tARWtBR-tC ! R. R/]P                  4      tE ! R0 R1]4      tFR2 R3 ltGR4 R5 ltHR6 R7 ltI]2! R8R97      R: R; l4       tJ]P                   ! R< R=4      4       tL] ! R> R?4      4       tMR@ RA ltNRB RC ltORD RE ltPRF RG ltQR'RHR*RHR)RIR(RJR+RJR,RH/tRRItSRK RL ltTRM RN ltURO RP ltVRQ RR ltWRS RT ltX ! RU RV4      tYR# )XzsTerminal reporting of the full testing process.

This is a good source for looking at the various reporting hooks.
)annotationsN)Counter)Callable)	Generator)Mapping)Sequence)partial)Path)Any)ClassVar)final)Literal)
NamedTuple)TextIO)TYPE_CHECKING)compat)nodes)timing)ExceptionInfo)ExceptionRepr)TerminalWriter)wcswidth)running_on_ci)_PluggyPlugin)Config)ExitCode)hookimpl)Parser)Item)Node)absolutepath)bestrelpath)
BaseReport)CollectReport)
TestReport)Sessiong      ?failedpassedwarningserrorsubtests passedsubtests failedfEc                  F   a  ] tR t^PtRtRR V 3R llltRR R lltRtV ;t# )	MoreQuietActionzA modified copy of the argparse count action which counts down and updates
the legacy quiet attribute at the same time.

Used to unify verbosity handling.
c               0    V ^8  d   QhRRRRRRRRR	R
RR/# )   option_stringszSequence[str]deststrdefaultobjectrequiredboolhelp
str | NonereturnNone )formats   "e/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/_pytest/terminal.py__annotate__MoreQuietAction.__annotate__W   sF     
 
%
 
 	

 
 
 

    c           	     	2   < \         SV `  VV^ VVVR7       R# )    )r1   r2   nargsr4   r6   r8   N)super__init__)selfr1   r2   r4   r6   r8   	__class__s   &&&&&&r>   rF   MoreQuietAction.__init__W   s)     	) 	 	
rA   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r0   parserzargparse.ArgumentParser	namespacezargparse.Namespacevalueszstr | Sequence[object] | Noneoption_stringr9   r:   r;   r<   )r=   s   "r>   r?   r@   h   s<     
= 
='
= &
= .	
=
 "
= 

=rA   c                	    \        W P                  ^ 4      ^,
          p\        W P                  V4       \        VR^ 4      ^,           Vn        R# )rC   quietN)getattrr2   setattrrP   )rG   rK   rL   rM   rN   	new_counts   &&&&& r>   __call__MoreQuietAction.__call__h   s<     Iyy!4q8		99i0!)Wa81<	rA   r<   )NFNN)	__name__
__module____qualname____firstlineno____doc__rF   rT   __static_attributes____classcell__)rH   s   @r>   r.   r.   P   s    
 
"
= 
=rA   r.   c                  :    ] tR t^ut$ RtR]R&   R]R&   R]R&   RtR# )	TestShortLogReportu#  Used to store the test status result category, shortletter and verbose word.
For example ``"rerun", "R", ("RERUN", {"yellow": True})``.

:ivar category:
    The class of result, for example ``“passed”``, ``“skipped”``, ``“error”``, or the empty string.

:ivar letter:
    The short letter shown as testing progresses, for example ``"."``, ``"s"``, ``"E"``, or the empty string.

:ivar word:
    Verbose word is shown as testing progresses in verbose mode, for example ``"PASSED"``, ``"SKIPPED"``,
    ``"ERROR"``, or the empty string.
r3   categoryletterz$str | tuple[str, Mapping[str, bool]]wordr<   N)rW   rX   rY   rZ   r[   __annotations__r\   r<   rA   r>   r_   r_   u   s     MK
..rA   r_   c                    V ^8  d   QhRRRR/# )r0   rK   r   r:   r;   r<   )r=   s   "r>   r?   r?      s     V VV V VrA   c           
        V P                  R RRR7      pVP                  RRR^ RRR	7       VP                  R
RRRRR	7       VP                  RRRRRR	7       VP                  RRRRRR7       VP                  RRRRRR7       VP                  RR\        ^ RRR	7       VP                  RR\        ^ RR 7       VP                  R!R"R#\
        R$R%R&7       VP                  R'R(RR)RR*R+7       VP                  R,R-RR.RR/R7       VP                  R0RR.R1R27       VP                  R3R4R"R5R6. RTOR8R97       VP                  R:RR;RR<R7       VP                  R=R"R>. RUOR?R@RA7       VP                  RBRCRRRDRE7       VP                  RFRGR"RGR6. RVORIR97       VP                  RJRHRHR7.RKRL7       V P                  RMRNRORP7       \        P                  ! V \        P                  RQRR7       RS# )Wzterminal reporting	Reportinggeneral)afterz-vz	--verbosecountverbosezIncrease verbosity)actionr4   r2   r8   z--no-header
store_trueF	no_headerzDisable headerz--no-summary
no_summaryzDisable summaryz--no-fold-skippedstore_falsefold_skippedTz+Do not fold skipped tests in short summary.)rk   r2   r4   r8   z--force-short-summaryforce_short_summaryz=Force condensed summary output regardless of verbosity level.z-qz--quietzDecrease verbosityz--verbosityzSet verbosity. Default: 0.)r2   typer4   r8   z-rstorereportcharscharsa  Show extra test summary info as specified by chars: (f)ailed, (E)rror, (s)kipped, (x)failed, (X)passed, (p)assed, (P)assed with output, (a)ll except passed (p/P), or (A)ll. (w)arnings are enabled by default (see --disable-warnings), 'N' can be used to reset the list. (default: 'fE').)rk   r2   r4   metavarr8   z--disable-warningsz--disable-pytest-warningsdisable_warningszDisable warnings summary)r4   r2   rk   r8   z-lz--showlocals
showlocalsz/Show locals in tracebacks (disabled by default)z--no-showlocalszFHide locals in tracebacks (negate --showlocals passed through addopts))rk   r2   r8   z--tbstyletbstyleautonoz5Traceback print mode (auto/long/short/line/native/no))rv   rk   r2   r4   choicesr8   z
--xfail-tbxfail_tbz1Show tracebacks for xfail (as long as --tb != no)z--show-captureshowcaptureallzOControls how captured stdout/stderr/log is shown on failed tests. Default: all.)rk   r2   r}   r4   r8   z--fulltracez--full-tracez,Don't cut any tracebacks (default is to cut))rk   r4   r8   z--colorcoloryesz#Color terminal output (yes/no/auto)z--code-highlightzSWhether code should be highlighted (only if --color is also enabled). Default: yes.)r4   r}   r8   console_output_stylezConsole output: "classic", or with additional progress information ("progress" (percentage) | "count" | "progress-even-when-capture-no" (forces progress even when capture=no)progress)r8   r4   zSpecify a verbosity level for test case execution, overriding the main level. Higher levels will provide more detailed information about each test case executed.)r8   N)r{   longshortr|   linenative)r|   stdoutstderrlogr   )r   r|   r{   )
getgroup
_addoption	addoptionr.   int_REPORTCHARS_DEFAULTaddinir   _add_verbosity_iniVERBOSITY_TEST_CASES)rK   groups   & r>   pytest_addoptionr      s   OO0+YOOE	!   
OO   
OO   
OO:   
OO"L   
!   
OO)   
$>   
OO#'   
>   
OOU	   
OOAD   
OO@   
OO8   
OO;   
OO%2   
OO	   MM)    ##b	rA   c                    V ^8  d   QhRRRR/# )r0   configr   r:   r;   r<   )r=   s   "r>   r?   r?   "  s     ? ?V ? ?rA   c                  a \        V \        P                  4      oV P                  P	                  SR 4       V P
                  P                  '       g   V P
                  P                  '       d-   V3R lpV P                  P                  P                  RV4       \        P                  R8X  d   V P                  P                  R4       R# R# )terminalreporterc                v   < R P                  \        \        V4      4      pSP                  RV,           4       R# ) z[traceconfig] N)joinmapr3   
write_line)tagsargsmsgreporters   && r>   mywriter"pytest_configure.<locals>.mywriter'  s+    ((3sD>*C 03 67rA   zpytest:configwin32terminalprogressN)TerminalReportersysr   pluginmanagerregisteroptiondebugtraceconfigtracerootsetprocessorplatformimport_plugin)r   r   r   s   & @r>   pytest_configurer   "  s    

3H
!!(,>?}}fmm777	8 	&&A ||w**+=> rA   c                    V ^8  d   QhRRRR/# )r0   r   r   r:   r3   r<   )r=   s   "r>   r?   r?   3  s       C rA   c                   V P                   P                  pR R0pRpV FJ  pWB9   d   VP                  4       pVR8X  d   RpK$  VR8X  d   RpK/  VR8X  d   RpK:  WC9  g   KB  W4,          pKL  	  V P                   P                  '       g   RV9  d   RV,           pV# V P                   P                  '       d   RV9   d   VP	                  RR4      pV# )	FS asxXEfAPpsxXEfNw)r   rt   lowerrw   replace)r   rt   old_aliases
reportoptschars   &    r>   getreportoptr   3  s    }}00K*KJ::<D3; JS["JS[J#J  ==)))c.C:%
  
	'	'	'C:,=''R0
rA   Ttrylastc                    V ^8  d   QhRRRR/# )r0   reportr"   r:   ztuple[str, str, str]r<   )r=   s   "r>   r?   r?   M  s     , ,Z ,4H ,rA   c                    R pV P                   '       d   RpMV P                  '       d   RpV P                  pV P                  R9   d   VR8X  d   RpRpW!VP	                  4       3# )r   .sr&   r)   E)collectsetupteardown)r'   skippedoutcomewhenupper)r   ra   r   s   &  r>   pytest_report_teststatusr   L  s[    F}}}	>>G{{667h;NGMMO++rA   c                  \    ] tR tRt$ RtR]R&   RtR]R&   RtR]R	&   R
tR]R&   R R lt	Rt
R# )WarningReporti\  aS  Simple structure to hold warnings information captured by ``pytest_warning_recorded``.

:ivar str message:
    User friendly message about the warning.
:ivar str|None nodeid:
    nodeid that generated the warning (see ``get_location``).
:ivar tuple fslocation:
    File system location of the source of the warning (see ``get_location``).
r3   messageNr9   nodeidztuple[str, int] | None
fslocationTr   count_towards_summaryc                    V ^8  d   QhRRRR/# )r0   r   r   r:   r9   r<   )r=   s   "r>   r?   WarningReport.__annotate__n  s      6 j rA   c                    V P                   '       d   V P                   # V P                  '       d?   V P                  w  r#\        VP                  P                  \        V4      4      pV RV 2# R# )zSReturn the more user-friendly information about the location of a warning, or None.:N)r   r   r!   invocation_paramsdirr    )rG   r   filenamelinenumrelpaths   &&   r>   get_locationWarningReport.get_locationn  s[    ;;;;;??? $H!&":":">">X@VWGYay))rA   r<   )rW   rX   rY   rZ   r[   rc   r   r   r   r   r\   r<   rA   r>   r   r   \  s8     LFJ)-J&-&*8* rA   r   c                     ] tR tRtRR R lltR R lt]R R l4       t]R	 R
 l4       t]R R l4       t	]R R l4       t
]R R l4       t]P                  R R l4       t]R R l4       t]R R l4       tR R ltR R ltRR R lltR R ltRR R!^R"R#/R$ R% lltRR /R& R' lltRR /R( R) lltR* R+ ltR, R- ltR. R/ ltRR0 R1 lltRR2 R3 lltR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR< R= ltR> R? lt R@ RA lt!RB RC lt"]RD RE l4       t#]$! RFRG7      RH RI l4       t%RJ RK lt&RL RM lt'RN RO lt(]RP RQ l4       t)RR RS lt*RT RU lt+RRV RW llt,]$! RFRX7      RY RZ l4       t-R[ R\ lt.R] R^ lt/R_ R` lt0Ra Rb lt1]$! RFRG7      Rc Rd l4       t2]$! RFRG7      Re Rf l4       t3Rg Rh lt4Ri Rj lt5Rk Rl lt6Rm Rn lt7Ro t8Rp t9Rq Rr lt:Rs Rt lt;Ru Rv lt<Rw Rx lt=Ry Rz lt>R{ R| lt?R} R~ lt@R R ltAR R ltBR R ltCRR/R R lltDR R ltER R ltFR R ltGR R ltHR R ltIR R ltJR R ltKR R ltLR R ltMR R ltNR R ltORtPR# )r   iy  Nc               $    V ^8  d   QhRRRRRR/# )r0   r   r   filezTextIO | Noner:   r;   r<   )r=   s   "r>   r?   TerminalReporter.__annotate__{  s&     B Bv B] Bd BrA   c                	   ^ RI pWn        ^ V n        RV n        RV n        / V n        RV n        RV n        VP                  P                  V n
        Vf   \        P                  pVP                  P                  W4      V n        V P                  P                  V n        RV n        \%        V4      V n        VP(                  P*                  V n        V P                  P.                  V n        \0        P2                  ! VP5                  4       4      V n        \7        4       V n        \7        4       V n        V P=                  4       V n        \@        PB                  ! 4       V n"        RV n#        RV n$        R# rC   N)%_pytest.configr   _numcollected_session_showfspathstats_main_color_known_typesr   r   	startpathr   r   create_terminal_writer_tw	fullwidth_screen_widthcurrentfspathr   rt   r   rp   foldskipped	hasmarkupr   CallableBoolisattyset_progress_nodeids_reported_timing_nodeids_reported_determine_show_progress_info_show_progress_infor   Instant_collect_report_last_write_already_displayed_warnings_keyboardinterrupt_memo)rG   r   r   _pytests   &&& r>   rF   TerminalReporter.__init__{  s   (,(,+-
'+.21155<::D>>88F!XX//6:'/!==55++ ))$++-847E'25%%#'#E#E#G *0..*:'7;(=A$rA   c                   V ^8  d   QhRR/# )r0   r:   z,Literal['progress', 'count', 'times', False]r<   )r=   s   "r>   r?   r     s      	5rA   c                @   V P                   P                  RR4      R8X  d#   V P                   P                  R4      R8w  d   R# V P                   P                  RR4      '       d   R# V P                   P                  R4      pVR
9   d   R# VR8X  d   R# VR	8X  d   R	# R# )zRReturn whether we should display progress information based on the current config.capturer|   r   progress-even-when-capture-noF	setupshowr   ri   times>   r   r  )r   	getoptiongetini)rG   cfgs   & r>   r   .TerminalReporter._determine_show_progress_info  s     KK!!)T2d:""#9:./ ;;  e44;;%%&<=??G^G^rA   c                   V ^8  d   QhRR/# r0   r:   r   r<   )r=   s   "r>   r?   r     s      3 rA   c                	F    V P                   P                  P                  pV# rV   )r   r   rj   )rG   	verbositys   & r>   r  TerminalReporter.verbosity  s    ++33	rA   c                   V ^8  d   QhRR/# r0   r:   r7   r<   )r=   s   "r>   r?   r     s     # #D #rA   c                	     V P                   ^ 8  # rC   )r  rG   s   &r>   
showheaderTerminalReporter.showheader  s    ~~""rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     2 24 2rA   c                	T    \        V P                  P                  P                  4      # rV   )r7   r   r   rm   r  s   &r>   rm   TerminalReporter.no_header  s    DKK&&0011rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     3 3D 3rA   c                	T    \        V P                  P                  P                  4      # rV   )r7   r   r   rn   r  s   &r>   rn   TerminalReporter.no_summary  s    DKK&&1122rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s        D  rA   c                	    V P                   f-   V P                  P                  \        P                  4      ^ 8  # V P                   # rV   )r   r   get_verbosityr   r   r  s   &r>   
showfspathTerminalReporter.showfspath  s:    #;;,,V-H-HIQNNrA   c                    V ^8  d   QhRRRR/# )r0   valuezbool | Noner:   r;   r<   )r=   s   "r>   r?   r     s     ! ! ! !rA   c                	    Wn         R # rV   )r   )rG   r*  s   &&r>   r'  r(    s     rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     J J$ JrA   c                	Z    V P                   P                  \        P                  4      ^ 8  # r  )r   r&  r   r   r  s   &r>   showlongtestinfo!TerminalReporter.showlongtestinfo  s"    {{(()D)DEIIrA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     4 43 4rA   c                ,    \        V P                  4      # )zEThe amount of items reported in the progress so far.

:meta private:
)lenr   r  s   &r>   reported_progress"TerminalReporter.reported_progress  s     42233rA   c                    V ^8  d   QhRRRR/# )r0   r   r3   r:   r7   r<   )r=   s   "r>   r?   r     s     ( (3 (4 (rA   c                	H    R RRR/P                  W4      pWP                  9   # )xfailedxr   r   )getrt   )rG   r   s   &&r>   hasoptTerminalReporter.hasopt  s*    3	3/33D?''''rA   c               (    V ^8  d   QhRRRRRRRR/# )r0   r   r3   resmarkupr7   r:   r;   r<   )r=   s   "r>   r?   r     s(     	2 	2# 	2C 	24 	2D 	2rA   c                	   V P                   P                  VP                  R 4      ^ ,          ,          pV P                  e   W@P                  8w  d   V P                  e#   V P                  '       d   V P                  4        W@n        \        V P                  V4      pV P                  P                  4        V P                  P                  VR,           4       V P                  P                  ! V3RR/VB  R# )::Nr   flushT)r   rootpathsplitr   r  )_write_progress_information_filling_spacer!   r   r   r   write)rG   r   r=  r>  fspath	relfspaths   &&&,  r>   write_fspath_result$TerminalReporter.write_fspath_result  s    %%T(:1(==%3E3E)E!!-$2J2J2J>>@!'#DNNF;IHHMMOHHNN9s?+s1$1&1rA   c               $    V ^8  d   QhRRRRRR/# )r0   prefixr3   extrar:   r;   r<   )r=   s   "r>   r?   r     s!     $ $# $c $T $rA   c                	    V P                   V8w  d<   V P                  P                  4        Wn         V P                  P                  V4       V'       d'   V P                  P                  ! V3/ VB  RV n         R# R# )r0   N)r   r   r   rE  )rG   rK  rL  kwargss   &&&,r>   write_ensure_prefix$TerminalReporter.write_ensure_prefix  sX    'HHMMO!'HHNN6"HHNN5+F+!#D rA   c                   V ^8  d   QhRR/# r0   r:   r;   r<   )r=   s   "r>   r?   r     s     & & &rA   c                	p    V P                   '       d$   V P                  P                  4        R V n         R # R # rV   )r   r   r   r  s   &r>   ensure_newlineTerminalReporter.ensure_newline  s(    HHMMO!%D rA   rA  Fmarginline_sep
c               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r0   contentr3   rA  r7   rW  r   rX  r>  r:   r;   r<   )r=   s   "r>   r?   r     sF     7 77 	7
 7 7 7 
7rA   c          	        V P                   P                  pVP                  \        P                  ! RV,          V,           V P
                  V,
          RRR7      4      pWvR pV P                   P                  ! V3RV/VB  R# )z+Wrap message with margin for progress info.r   TF)widthdrop_whitespacereplace_whitespaceNrA  )r   width_of_current_liner   textwrapwrapr   rE  )rG   r[  rA  rW  rX  r>  r`  wrappeds   &&$$$,  r>   
wrap_writeTerminalReporter.wrap_write  sw     !% > >--MM++g5((61 $#(	
 01w6e6v6rA   c               (    V ^8  d   QhRRRRRRRR/# )r0   r[  r3   rA  r7   r>  r:   r;   r<   )r=   s   "r>   r?   r     s(     7 7S 7D 7D 7T 7rA   c               	D    V P                   P                  ! V3R V/VB  R# )rA  N)r   rE  )rG   r[  rA  r>  s   &&$,r>   rE  TerminalReporter.write  s    w6e6v6rA   c               $    V ^8  d   QhRRRRRR/# )r0   r[  r3   rA  r7   r:   r;   r<   )r=   s   "r>   r?   r     s!     1 1 1 1 1rA   c               	>    V P                   P                  WR 7       R# )rA  N)r   	write_raw)rG   r[  rA  s   &&$r>   rl  TerminalReporter.write_raw  s    70rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s      t rA   c                	:    V P                   P                  4        R # rV   )r   rA  r  s   &r>   rA  TerminalReporter.flush  s    rA   c               $    V ^8  d   QhRRRRRR/# )r0   r   zstr | bytesr>  r7   r:   r;   r<   )r=   s   "r>   r?   r     s!     & &{ &d &t &rA   c                	    \        V\        4      '       g   \        VR R7      pV P                  4        V P                  P                  ! V3/ VB  R# )r   )errorsN)
isinstancer3   rU  r   r   )rG   r   r>  s   &&,r>   r   TerminalReporter.write_line  s<    $$$tI.Dd%f%rA   c               $    V ^8  d   QhRRRRRR/# )r0   r   r3   r>  r7   r:   r;   r<   )r=   s   "r>   r?   r     s!     5 5C 54 5D 5rA   c                   VP                  RR4      pV'       d8   V P                  P                  \        V4      ,
          ^,
          pRV,          pMRp\	        V4      pV P                  P
                  ! RV,           V,           3/ VB  R# )a  Rewinds the terminal cursor to the beginning and writes the given line.

:param erase:
    If True, will also add spaces until the full terminal width to ensure
    previous lines are properly erased.

The rest of the keyword arguments are markup instructions.
eraseFr   r   N)popr   r   r2  r3   rE  )rG   r   r>  rx  
fill_countfills   &&,   r>   rewriteTerminalReporter.rewrite  sj     

7E*++c$i7!;J#DD4ytd{T)4V4rA   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r0   sepr3   titler9   r   
int | Noner>  r7   r:   r;   r<   )r=   s   "r>   r?   r   -  s<     6 66 6 	6
 6 
6rA   c                	b    V P                  4        V P                  P                  ! WV3/ VB  R # rV   )rU  r   r  )rG   r  r  r   r>  s   &&&&,r>   	write_sepTerminalReporter.write_sep-  s'     	S5f5rA   c               (    V ^8  d   QhRRRRRRRR/# )r0   r  r3   r  kwr7   r:   r;   r<   )r=   s   "r>   r?   r   7  s(     ' 'S 's ' ' 'rA   c                	@    V P                   P                  ! W!3/ VB  R # rV   )r   r  )rG   r  r  r  s   &&&,r>   sectionTerminalReporter.section7  s    S&2&rA   c               $    V ^8  d   QhRRRRRR/# )r0   r   r3   r  r7   r:   r;   r<   )r=   s   "r>   r?   r   :  s!     ! ! !4 !D !rA   c                	@    V P                   P                  ! V3/ VB  R # rV   )r   r   )rG   r   r  s   &&,r>   r   TerminalReporter.line:  s    c R rA   c               $    V ^8  d   QhRRRRRR/# )r0   r`   r3   itemszSequence[Any]r:   r;   r<   )r=   s   "r>   r?   r   =  s!     # #3 #} # #rA   c                	    WP                   9  pV P                   P                  V. 4      P                  V4       V'       d   V P                  4        R # R # rV   )r   
setdefaultextend_set_main_color)rG   r`   r  set_main_colors   &&& r>   
_add_statsTerminalReporter._add_stats=  sA    !3

h+2259  " rA   c                    V ^8  d   QhRRRR/# )r0   excreprr   r:   r7   r<   )r=   s   "r>   r?   r   C  s      M d rA   c                	x    \        V4      P                  R 4       F  pV P                  RV,           4       K  	  R# )rY  zINTERNALERROR> T)r3   rC  r   )rG   r  r   s   && r>   pytest_internalerror%TerminalReporter.pytest_internalerrorC  s0    L&&t,DOO-45 -rA   c               $    V ^8  d   QhRRRRRR/# )r0   warning_messagezwarnings.WarningMessager   r3   r:   r;   r<   )r=   s   "r>   r?   r   H  s(     6 606 6 
	6rA   c                	    ^ RI Hp VP                  VP                  3pV! V4      p\	        WEVR7      pV P                  RV.4       R# )rC   )warning_record_to_str)r   r   r   r(   N)_pytest.warningsr  r   linenor   r  )rG   r  r   r  r   r   warning_reports   &&&    r>   pytest_warning_recorded(TerminalReporter.pytest_warning_recordedH  sI    
 	;$--/E/EE
'8&!6
 	
^$45rA   c                    V ^8  d   QhRRRR/# )r0   pluginr   r:   r;   r<   )r=   s   "r>   r?   r   W  s     ! !} ! !rA   c                	    V P                   P                  P                  '       d   R V 2pV P                  V4       R# R# )zPLUGIN registered: N)r   r   r   r   )rG   r  r   s   && r>   pytest_plugin_registered)TerminalReporter.pytest_plugin_registeredW  s7    ;;)))'x0C OOC  *rA   c                    V ^8  d   QhRRRR/# r0   r  zSequence[Item]r:   r;   r<   )r=   s   "r>   r?   r   _  s     - -~ -$ -rA   c                	*    V P                  R V4       R# )
deselectedN)r  )rG   r  s   &&r>   pytest_deselected"TerminalReporter.pytest_deselected_  s    e,rA   c               $    V ^8  d   QhRRRRRR/# )r0   r   r3   locationztuple[str, int | None, str]r:   r;   r<   )r=   s   "r>   r?   r   b  s$      %@	rA   c                	   Vw  r4pV P                   '       d7   V P                  WWE4      pV P                  VR 4       V P                  4        R# V P                  '       d%   V P                  VR 4       V P                  4        R# R# )r   N)r.  _locationlinerP  rA  r'  rH  )rG   r   r  rF  r  domainr   s   &&&    r>   pytest_runtest_logstart(TerminalReporter.pytest_runtest_logstartb  sn     "*    %%ffED$$T2.JJL___$$VR0JJL rA   c                    V ^8  d   QhRRRR/# r0   r   r$   r:   r;   r<   )r=   s   "r>   r?   r   p  s     J Jz Jd JrA   c                	,   R V n         Tp\        V P                  P                  P	                  W P                  R7      !  pVP
                  VP                  VP                  rep\        V\        4      '       g   RpMVw  rgV P                  WB.4       V'       g   V'       g   R# Vf{   \        VR4      pVP                  '       d   V'       g   RR /pMOVP                  '       d   V'       d   RR /pM0VP                  '       d   RR /pMVP                  '       d   RR /pM/ pV P                  P!                  VP"                  4       V P                  P%                  \&        P(                  4      ^ 8:  dT   V P*                  P,                  ! V3/ VB  V P.                  '       d#   V P0                  '       g   V P3                  4        EM;V P4                  ! VP"                  .VP6                  O5!  p	\        VR4      p
V
'       Eg   V P8                  ! W3/ VB  VP                  '       g   \        VR4      '       d   \;        V4      pV P                  P%                  \&        P(                  4      ^8  dV   V P*                  P<                  V P*                  P>                  ,
          \A        R4      ,
          ^,
          p\C        R	W4      pMR
V R2pV'       d   Ve   V PE                  V4       V P.                  '       d   V PG                  4        MV PI                  4        V P*                  P-                  RVPJ                  PL                  PN                   R24       V P.                  '       d4   V P*                  P-                  V PQ                  4       R,           R R7       MV P*                  P-                  R4       V P*                  P,                  ! V3/ VB  V P*                  P-                  RV	,           4       RV n)        V PU                  4        R# )T)r   r   Nwasxfailgreenyellowrednode [100%]z ({})z ()[]r   )cyanrN  )+
_tests_ranr_   r   hookr   r`   ra   rb   rt  tupler  hasattrr'   r&   r   r   addr   r&  r   r   r   rE  r  _is_last_item(_write_progress_information_if_past_edger  r  rP  _get_raw_skip_reasonr   r`  r2  _format_trimmedrd  rD  rU  r  gatewayid!_get_progress_information_messager   rA  )rG   r   repr=  r`   ra   rb   r>  	was_xfailr   running_xdistreasonavailable_widthformatted_reasons   &&            r>   pytest_runtest_logreport)TerminalReporter.pytest_runtest_logreportp  s    [[66c++6V
 "%szz388$$&&FLD%(d>
3Izzz)!4	"D)"D)''++CJJ7;;$$V%@%@AQFHHNN6,V, '''0B0B0B==?%%cjj@3<<@D#C0M =((>v>;;;'&*"="=1#6F{{001L1LMPQQ!XX//$((2P2PP!)n-  (
 ,;#V,( .0xq>("2">(89+++BBD##%388#3#3#6#6"7q9:+++HHNN>>@3FT #  HHNN3't.v.sTz*%'"

rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     F Ft FrA   c                	h    V P                   f   Q hV P                  V P                   P                  8H  # rV   )r   r3  testscollectedr  s   &r>   r  TerminalReporter._is_last_item  s-    }}(((%%)E)EEErA   T)wrapperc                   V ^8  d   QhRR/# )r0   r:   zGenerator[None, object, object]r<   )r=   s   "r>   r?   r     s      $C rA   c              #  	   "   R x pV P                   P                  \        P                  4      ^ 8:  d5   V P                  '       d#   V P
                  '       d   V P                  4        V# 5irV   )r   r&  r   r   r  r3  rD  )rG   results   & r>   pytest_runtestloop#TerminalReporter.pytest_runtestloop  sR      KK%%f&A&ABaG(((&&&::<s   AA+A+A+c                   V ^8  d   QhRR/# )r0   r:   r3   r<   )r=   s   "r>   r?   r     s     + +3 +rA   c                	  a V P                   '       g   Q hV P                   P                  pV P                  R 8X  dM   V'       d<   V P                  pR\	        \        V4      4       R2pRV R2pVP                  W!4      # RV RV R2# V P                  R8X  Ed   V'       g   R	# V P                  R
4      V P                  R4      ,           V P                  R4      ,           V P                  R4      ,           V P                  R4      ,           V P                  R4      ,           V P                  R	4      ,           pVR,          P                  ^ ,          oV Uu. uF!  qfP                  V P                  9  g   K  VNK#  	  pp\        V3R lV P                   P                   4       4      p\        V3R lV 4       4      p	W8H  p
V P                  '       g	   V
'       d>   V P                  P                  R V 4       4       \        \        R V 4       4      4      # R	# V'       d    RV P                  ^d,          V,          R R2# R# u upi )ri   z{:zd} [z/{}]z [  / z ]r  r   r'   xpassedr&   r7  r   r)   c              3  N   <"   T F  qP                   ^ ,          S8H  x  K  	  R# 5ir   )r  ).0icurrent_locations   & r>   	<genexpr>ETerminalReporter._get_progress_information_message.<locals>.<genexpr>  s!      ";Na

1!11;Ns   "%c              3  v   <"   T F.  pVP                   ^ ,          S8X  g   K  VP                  R8H  x  K0  	  R# 5i)rC   r   N)r  r   )r  rr  s   & r>   r  r    s4      "%A::a=$44 "'!%s   99c              3  8   "   T F  qP                   x  K  	  R # 5irV   )r   r  r  s   & r>   r  r    s     4T|!XX|s   c              3  j   "   T F)  p\        V\        4      '       g   K  VP                  x  K+  	  R # 5irV   )rt  r$   durationr  s   & r>   r  r    s     VLqJq*<U


Ls   333dz%]r  )r   r  r  r3  r2  r3   r=   _get_reports_to_displayr  r   r   sumr  r.  updateformat_node_duration)rG   	collectedr   counter_formatformat_stringall_reportsr  not_reportedtests_in_moduletests_completedlast_in_moduler  s   &          @r>   r  2TerminalReporter._get_progress_information_message  s)   }}}}MM00	##w.11#&s3y>':&;3!?"$^$4F ;$++H@@3yk44##w.,,X6..y9:..x89 ..y9: ..y9	:
 ..w78 ..r23   +277:&&a(($:W:W*W;   " ";?==;N;N" O " "%" O
 -?N$$$--444T|4TT+VLVV  ..4	A"ERHH)s   I9Ic                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     = =$ =rA   c                	   V P                   pV P                  R 8X  d>   V P                  '       g   Q hV P                  P                  p\	        RV RV R24      pM(V P                  R8X  d   \	        R4      pM\	        R4      pW,           ^,           V P
                  8  pV'       dK   V P                  4       w  rVV P                  4       pV P                  P                  ! VR,           3/ VR/B  R	# R	# )
ri   r  /r  r  z 99h 59mr  rY  TN)
_width_of_current_liner  r   r  r2  r   _get_main_colorr  r   rE  )rG   r   	num_testsprogress_length	past_edge
main_color_r   s   &       r>   r  9TerminalReporter._write_progress_information_if_past_edge  s    ''##w.=== =44I!Byk9+Q"?@O%%0!*oO!)nO'!+t/A/AA	 002MJ88:CHHNN3:<*d);< rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     A A4 ArA   c                	    V P                  4       w  rV P                  4       pV P                  pV P                  P                  V,
          ^,
          pV P
                  ! VP                  V4      3RR/VR/B  R# )   rA  TN)r  r  r  r   r   rE  rjust)rG   r   r  r   r   r|  s   &     r>   rD  :TerminalReporter._write_progress_information_filling_space  sf    '')446''xx!!A%)

399T?@$@5$-@rA   c                   V ^8  d   QhRR/# r  r<   )r=   s   "r>   r?   r     s     . . .rA   c                .    V P                   P                  # )z%Return the width of the current line.)r   r`  r  s   &r>   r  'TerminalReporter._width_of_current_line  s     xx---rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     A A4 ArA   c                	"   V P                  4       '       d>   V P                  P                  P                  ^ 8  d   V P	                  RRRR7       R# R# V P                  P                  P                  ^8  d   V P	                  RRRR7       R# R# )rC   zcollecting ... T)rA  boldN)r   r   r   rj   rE  r  s   &r>   pytest_collection"TerminalReporter.pytest_collection  sm    ;;=={{!!))Q.

,Dt
D /[[''1,JJ(4J@ -rA   c                    V ^8  d   QhRRRR/# )r0   r   r#   r:   r;   r<   )r=   s   "r>   r?   r     s     " "= "T "rA   c                	   VP                   '       d   V P                  R V.4       M%VP                  '       d   V P                  RV.4       VP                   Uu. uF  p\	        V\
        4      '       g   K  VNK  	  ppV ;P                  \        V4      ,          un        V P                  4       '       d   V P                  4        R# R# u upi )r)   r   N)
r&   r  r   r  rt  r   r   r2  r   report_collect)rG   r   r8  r  s   &&  r>   pytest_collectreport%TerminalReporter.pytest_collectreport  s    ===OOGfX.^^^OOIx0"MMAMqZ4-@MAc%j(;;==!  Bs   C7Cc                    V ^8  d   QhRRRR/# )r0   r   r7   r:   r;   r<   )r=   s   "r>   r?   r   )  s     "" ""D ""T ""rA   c                	   V P                   P                  P                  ^ 8  d   R# V'       gJ   V P                  P	                  4       P
                  \        8  d   R# \        P                  ! 4       V n        \        V P                  P                  R. 4      4      p\        V P                  P                  R. 4      4      p\        V P                  P                  R. 4      4      pV P                  V,
          pV'       d   RMRpT\        V P                  4      R,           V P                  ^8X  d   RMR	,           ,          pV'       d   TR
T RV^8w  d   R	MR 2,          pV'       d   VR
V R2,          pV'       d   VR
V R2,          pV P                  V8  d   VR
V R2,          pV P                  4       '       d2   V P                  VRRR7       V'       d   V P!                  R4       R# R# V P#                  V4       R# )rC   Nr)   r   r  z
collected zcollecting z itemr   r   r  z errorz deselectedz skippedz	 selectedT)r  rx  rY  )r   r   rj   r  elapsedsecondsREPORT_COLLECTING_RESOLUTIONr   r  r2  r   r9  r   r3   r   r}  rE  r   )rG   r   rs  r   r  selectedr   s   &&     r>   r  TerminalReporter.report_collect)  s   ;;%%) //779AA./ .4nn.>D+TZZ^^GR01djjnnY34b9:
%%
2$|-""#g-t7I7IQ7NTWX	
 c&v{'CDDDc*[11Dc'(++D(c(9--D;;==LLDL5

4   OOD!rA   r   c                    V ^8  d   QhRRRR/# r0   sessionr%   r:   r;   r<   )r=   s   "r>   r?   r   N  s     7 77 7t 7rA   c                	   Wn         \        P                  ! 4       V n        V P                  '       g   R # V P                  RRRR7       \        P                  ! 4       pV P                  '       Eg   R\        P                   RV 2p\        \        RR 4      pV'       d>   RP                  \        \        VR	,          4      4      pVR
V RV^,           R2,          pVR\        P                  P                    R\"        P$                   2,          pV P&                  ^ 8  gN   V P(                  P*                  P,                  '       g(   \        V P(                  P*                  RR 4      '       d(   VR\        \        P.                  4      ,           ,          pV P1                  V4       V P(                  P2                  P5                  V P(                  V P6                  R7      pV P9                  V4       R # R # )N=ztest session startsTr  z	platform z -- Python pypy_version_infor   :N   Nz[pypy--r  z	, pytest-z	, pluggy-pastebinz -- )r   
start_path)r   r   r  _session_startr  r  r   python_versionrm   r   rQ   r   r   r3   r  _versionversionpluggy__version__r  r   r   r   
executabler   r  pytest_report_headerr   _write_report_lines_from_hooks)rG   r(  verinfor   r,  liness   &&    r>   pytest_sessionstart$TerminalReporter.pytest_sessionstartM  s{   $nn.s1=))+~~~cll^;wi@C '-@$ G ((3s,=b,A#BCy*;A*>)?qAAYw//778	&BTBTAUVVC";;%%+++4;;--z4@@vCNN 333OOC KK$$99{{t~~ : E //6# rA   c                    V ^8  d   QhRRRR/# )r0   r;  zSequence[str | Sequence[str]]r:   r;   r<   )r=   s   "r>   r?   r   h  s     * *2*	*rA   c                	    \        V4       FF  p\        V\        4      '       d   V P                  V4       K,  V F  pV P                  V4       K  	  KH  	  R # rV   )reversedrt  r3   r   )rG   r;  line_or_linesr   s   &&  r>   r9  /TerminalReporter._write_report_lines_from_hooksh  sA     &e_M---.)DOOD) *	 -rA   c                    V ^8  d   QhRRRR/# )r0   r   r   r:   	list[str]r<   )r=   s   "r>   r?   r   r  s      6 i rA   c           	     	   R VP                    2.pVP                  '       dq   RpVP                  '       d    RRP                  VP                  4       R2pVP	                  R\        VP                   VP                  4      ,           V,           4       VP                  \        P                  P                  8X  dA   VP                  R4      pVP	                  RP                  RP                  V4      4      4       VP                  P                  4       pV'       d9   VP	                  RP                  RP                  \        V4      4      4      4       V# )	z	rootdir: r   z% (WARNING: ignoring pytest config in , z!)zconfigfile: 	testpathsztestpaths: {}zplugins: {})rB  inipath_ignored_config_filesr   appendr!   args_sourcer   
ArgsSource	TESTPATHSr  r=   r   list_plugin_distinfo_plugin_nameversions)rG   r   r  warningrG  
plugininfos   &&    r>   r8  %TerminalReporter.pytest_report_headerr  s	   foo./0>>>G+++A$))FLhLhBiAjjlmMMV__fnn!MMPWW !2!2!<!<<#)==#=IMM/0091EFG))>>@
MM$$TYY/CJ/O%PQ rA   c                    V ^8  d   QhRRRR/# r'  r<   )r=   s   "r>   r?   r     s     - - -D -rA   c                	   V P                  R 4       V P                  P                  P                  V P                  V P                  VP
                  R7      pV P                  V4       V P                  P                  R4      '       d   VP
                  '       d\   V P                  P                  P                  R8  d   V P                  P                  R4       V P                  VP
                  4       V P                  P                  R4      pV'       dC   V P                  P                  RR4       V F  pVP!                  V P                  4       K   	  R# R# R# )	T)r   r0  r  collectonlyr   r&   !zcollection failuresNr  )r  r   r  pytest_report_collectionfinishr   r  r9  r  r   rj   r   r   _printcollecteditemsr   r9  r  
toterminal)rG   r(  r;  r&   r  s   &&   r>   pytest_collection_finish)TerminalReporter.pytest_collection_finish  s    D!  ??;;~~-- @ 

 	++E2;;  //}}};;%%--2HHMM"%))'--8ZZ^^H-FS"78!CNN488, "  0rA   c                    V ^8  d   QhRRRR/# r  r<   )r=   s   "r>   r?   r     s     N N. NT NrA   c           	     	   V P                   P                  \        P                  4      pV^ 8  d   VR	8  dW   \	        R V 4       4      p\        VP                  4       4       F%  w  rEV P                  P                  V RV 24       K'  	  R# V F(  pV P                  P                  VP                  4       K*  	  R# . pRpV EF/  pVP                  4       R,          p	V'       d&   WyR\        V4       8X  d   MVP                  4        K-  V	\        V4      R  F  p
VP                  V
4       \        V4      ^,
          R,          pV P                  P                  V V
 24       V^8  g   KU  \        V
RR4      pV'       d   \        P                   ! V4      MRpV'       g   K  VP#                  4        F5  pV P                  P                  RP%                  VR,           V4      4       K7  	  K  	  EK2  	  R# )
rC   c              3  f   "   T F'  qP                   P                  R ^4      ^ ,          x  K)  	  R# 5ir@  N)r   rC  )r  items   & r>   r  8TerminalReporter._printcollecteditems.<locals>.<genexpr>  s'      Q54!2!24!;A!>!>5   /1: Nr   :r  NN  objz{}{}r  )r   r&  r   r   r   sortedr  r   r   r   	listchainr2  rz  rJ  rQ   inspectgetdoc
splitlinesr=   )rG   r  test_cases_verbositycountsnameri   r`  stackindentneeded_collectorscolre  docr   s   &&            r>   rX  %TerminalReporter._printcollecteditems  s   #{{889T9TU!##b(  Q5 QQ#)&,,.#9KDHHMMTF"UG"45 $:
  "DHHMM$++. "D $ 0 4lE
;;		(U6S!e*q.D0./'1,!#ud3C14'..-$Cs$'NN$4D HHMM&--t*LM %5 7 rA   c               $    V ^8  d   QhRRRRRR/# )r0   r(  r%   
exitstatuszint | ExitCoder:   Generator[None]r<   )r=   s   "r>   r?   r     s$      ,:	rA   c              #  	  "   R x pV P                   P                  R4       \        P                  \        P                  \        P
                  \        P                  \        P                  3pW$9   dD   V P                  '       g2   V P                  P                  P                  WV P                  R7       VP                  '       d(   V P                  R\        VP                  4      RR7       V\        P
                  8X  d   V P                  4        R V n        M9VP"                  '       d(   V P                  R\        VP"                  4      RR7       V P%                  4        V# 5i)Nr   )r   ru  r   rV  T)r  )r   r   r   OKTESTS_FAILEDINTERRUPTEDUSAGE_ERRORNO_TESTS_COLLECTEDrn   r   r  pytest_terminal_summary
shouldfailr  r3   _report_keyboardinterruptr  
shouldstopsummary_stats)rG   r(  ru  r  summary_exit_codess   &&&  r>   pytest_sessionfinish%TerminalReporter.pytest_sessionfinish  s     bKK!!    ''
 +DOOOKK44!%T[[ 5  NN3G$6$6 7TNB---**,+/D(NN3G$6$6 7TNBs   BE)AE)
A%E)09E)c                   V ^8  d   QhRR/# )r0   r:   rv  r<   )r=   s   "r>   r?   r     s     $ $ $rA   c              #  	^  "   V P                  4        V P                  4        V P                  4        V P                  4        V P	                  4        V P                  4         R x V P                  4        V P                  4        #   T P                  4        T P                  4        i ; i5irV   )summary_errorssummary_failuressummary_xfailuressummary_warningssummary_passessummary_xpassesshort_test_summaryr  s   &r>   r}  (TerminalReporter.pytest_terminal_summary  s      	$##%!!# ##%!!#s   A!B-$B '!B-"B**B-c                    V ^8  d   QhRRRR/# )r0   excinfozExceptionInfo[BaseException]r:   r;   r<   )r=   s   "r>   r?   r     s      F F1M FRV FrA   c                	4    VP                  R R7      V n        R# )T)funcargsN)getreprr  )rG   r  s   &&r>   pytest_keyboard_interrupt*TerminalReporter.pytest_keyboard_interrupt  s    '.'E$rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     - -D -rA   c                	F    V P                   e   V P                  4        R # R # rV   )r  r  r  s   &r>   pytest_unconfigure#TerminalReporter.pytest_unconfigure  s    ''3**, 4rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s      4 rA   c                	   V P                   pVf   Q hVP                  f   Q hVP                  P                  pV P                  RV4       RV9   d   V P                  P
                  P                  '       d   VP                  V P                  4       R # VP                  P                  V P                  4       V P                  P                  RRR7       R # R # )NrV  KeyboardInterruptz@(to show a full traceback on KeyboardInterrupt use --full-trace)T)r  )
r  	reprcrashr   r  r   r   	fulltracerY  r   r   )rG   r  r   s   &  r>   r  *TerminalReporter._report_keyboardinterrupt  s    .."""  ,,,''sC #%{{!!+++""488,!!,,TXX6V   &rA   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r0   r   r3   rF  r  r  r  r:   r<   )r=   s   "r>   r?   r     s4      #&0:DG	rA   c                	T  a a R  VV 3R llpV'       d   V! V4      pS P                   ^8  di   VP                  R4      ^ ,          VP                  R\        P                  4      8w  d.   VR\        S P                  \        V4      4      ,           ,          pVR,           # RpVR,           # )c                    V ^8  d   QhRRRR/# )r0   r   r3   r:   r<   )r=   s   "r>   r?   4TerminalReporter._locationline.<locals>.__annotate__   s     	 	# 	# 	rA   c                $  < SP                   P                  V 4      pS'       dl   VP                  S4      '       dU   VR \        S4      )  pSP	                  R4      pV^ ,          P                  RR4      V^ &   VRP                  V4      ,          pV# )Nr  r   r@  )r   cwd_relative_nodeidendswithr2  rC  r   r   )r   r   rM   r  rG   s   &  r>   mkrel-TerminalReporter._locationline.<locals>.mkrel   sz    ;;226:D$--//Ns6{l+c*"1I--c48q	((KrA   r@  \z <- z
[location]r   )r  rC  r   r   SEPr!   r   r	   )rG   r   rF  r  r  r  r=  s   f&&&f  r>   r  TerminalReporter._locationline  s    	 	 -C~~"v||D'9!'<eiiA ( vDNNDL III Sy CSyrA   c                	2    VP                   pV'       d   V# R # )ztest session)	head_line)rG   r  r  s   && r>   _getfailureheadline$TerminalReporter._getfailureheadline  s    MM	rA   c                	     \        VP                  P                  4      #   \         d4     \        TP                  4      R ,          u #   \         d      R# i ; ii ; i):N2   Nr   )r3   longreprr  AttributeError)rG   r  s   &&r>   _getcrashlineTerminalReporter._getcrashline  sV    	s||--.. 	3<<(--! 	s,   ! AAAAAAAc                   V ^8  d   QhRR/# )r0   rm  r3   r<   )r=   s   "r>   r?   r   &  s     T Ts TrA   c                	    V P                   P                  VR4       Uu. uF  p\        VR 4      '       d   K  VNK  	  up# u upi )	_pdbshownr<   )r   r9  r  )rG   rm  r8  s   && r>   
getreportsTerminalReporter.getreports&  s6    ::>>$3S3a71k;R3SSSs
   AAc                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r   )  s     4 4$ 4rA   c                	  a  S P                  R 4      '       Ed   S P                  P                  R4      pV'       g   R# S P                  RJpV'       d   VS P                  R pMTp\	        V4      S n        V'       g   R# / pV F.  pVP                  VP                  . 4      P                  V4       K0  	  R V 3R llpV'       d   RMRpS P                  RVRR	R
7       VP                  4        F  w  rV! V	4      p
V
'       dU   S P                  P                  V
4       VP                  4       pRP                  R V 4       4      pVP                  4       pMVP                  4       pS P                  P                  V4       S P                  P                  4        K  	  S P                  P                  R4       R# R# )r   r(   Nc                    V ^8  d   QhRRRR/# )r0   reportszlist[WarningReport]r:   r3   r<   )r=   s   "r>   r?   7TerminalReporter.summary_warnings.<locals>.__annotate__<  s      3F 3 rA   c                T  < . pV  F9  pVP                  SP                  4      pV'       g   K(  VP                  V4       K;  	  \        V4      ^
8  d    RP	                  \        \        V4      4      # \        R V 4       4      pRP	                  R VP                  4        4       4      # )
   rY  c              3  f   "   T F'  p\        V4      P                  R ^4      ^ ,          x  K)  	  R# 5ir_  )r3   rC  )r  locs   & r>   r  WTerminalReporter.summary_warnings.<locals>.collapsed_location_report.<locals>.<genexpr>F  s*      -:C3CHNN4+A..)rb  c              3  \   "   T F"  w  rR P                  YV^8  d   RMR4      x  K$  	  R# 5i)z{}: {} warning{}r   r   N)r=   )r  kvs   &  r>   r  r  I  s1      ! : '--a1q5CbII :s   *,)	r   r   rJ  r2  r   r   r3   r   r  )r  	locationsr   r  counts_by_filenamerG   s   &    r>   collapsed_location_reportDTerminalReporter.summary_warnings.<locals>.collapsed_location_report<  s    	 A ~~dkk:Hx!((2 !
 y>B&99Si%899%, -:C- &" yy ! 2 8 8 :!  rA   zwarnings summary (final)zwarnings summaryr*  TF)r  r  rY  c              3  4   "   T F  pR V,           x  K  	  R# 5i)rd  Nr<   )r  r8  s   & r>   r  4TerminalReporter.summary_warnings.<locals>.<genexpr>U  s     (A5a5s   zG-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html)r:  r   r9  r  r2  r  r   rJ  r  r  r   r   rj  r   rstrip)rG   all_warningsr   warning_reportsreports_grouped_by_messagewrr  r  r   message_reportsmaybe_locationr;  indenteds   f            r>   r  !TerminalReporter.summary_warnings)  sh   ;;s7;zz~~j7QL44D@E".t/O/O/Q"R"./2?/CD,"IK&%*55bjj"ELLRP & $ 38.=OENN3dN?,F,L,L,N(!:?!K!HHMM.1#..0E#yy(A5(AAH&oo/G%nn.Gg& -O HHMMYc rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r   _  s     > > >rA   c                	,    V P                  R RR4       R# )r'   PASSESPNsummary_passes_combinedr  s   &r>   r  TerminalReporter.summary_passes_  s    $$Xx=rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r   b  s     @ @ @rA   c                	,    V P                  R RR4       R# )r  XPASSESXNr  r  s   &r>   r   TerminalReporter.summary_xpassesb  s    $$Y	3?rA   c               (    V ^8  d   QhRRRRRRRR/# )r0   which_reportsr3   	sep_title
needed_optr:   r;   r<   )r=   s   "r>   r?   r   e  s,     ? ? ?-0?>A?	?rA   c                	   V P                   P                  P                  R 8w  d   V P                  V4      '       d   V P	                  V4      pV'       g   R# V P                  RV4       V Fg  pVP                  '       d8   V P                  V4      pV P                  RVRRR7       V P                  V4       V P                  VP                  4       Ki  	  R# R# R# )r|   Nr*  r  T)r  r  )r   r   rz   r:  r  r  sectionsr  _outrep_summary_handle_teardown_sectionsr   )rG   r  r  r  r  r  r   s   &&&&   r>   r  (TerminalReporter.summary_passes_combinede  s     ;;%%-{{:&&,0OOM,JsI."C|||"66s;sCt$G,,S1223::> # ' .rA   c                    V ^8  d   QhRRRR/# )r0   r   r3   r:   zlist[TestReport]r<   )r=   s   "r>   r?   r   u  s     
 
C 
4D 
rA   c                	    V P                  R 4      pV Uu. uF+  pVP                  R8X  g   K  VP                  V8X  g   K)  VNK-  	  up# u upi )r   r   )r  r   r   )rG   r   r  r   s   &&  r>   _get_teardown_reports&TerminalReporter._get_teardown_reportsu  sV    //"% "
!{{j( -3]]f-D F!
 	
 
s   A
A
A
c                    V ^8  d   QhRRRR/# )r0   r   r3   r:   r;   r<   )r=   s   "r>   r?   r   }  s     1 1 1 1rA   c                	X    V P                  V4       F  pV P                  V4       K  	  R # rV   )r  print_teardown_sections)rG   r   r   s   && r>   r  *TerminalReporter._handle_teardown_sections}  s%    008F((0 9rA   c                    V ^8  d   QhRRRR/# )r0   r  r$   r:   r;   r<   )r=   s   "r>   r?   r     s     ' ': '$ 'rA   c                	>   V P                   P                  P                  pVR 8X  d   R# VP                   Fc  w  r4VR8w  d	   W#9  d   K  RV9   g   K  V P                  P                  RV4       VRR R8X  d   VRR pV P                  P                  V4       Ke  	  R# )r|   Nr   r   r.  rY  r  )r   r   r   r  r   r  r   rG   r  r   secnamer[  s   &&   r>   r  (TerminalReporter.print_teardown_sections  s    kk((44$ #Ge#(BW$S'*23<4'%crlGg& !-rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     J J$ JrA   c                	n    V P                   P                  P                  pV P                  R RVR7       R# )r&   FAILURESry   N)r   r   rz   summary_failures_combined)rG   ry   s   & r>   r  !TerminalReporter.summary_failures  s,    ""**&&x5&IrA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     L L4 LrA   c                	    V P                   P                  P                  pV'       d!   V P                   P                  P                  MR pV P	                  RRVR7       R# )r|   r7  	XFAILURESr  N)r   r   r~   rz   r  )rG   show_tbry   s   &  r>   r  "TerminalReporter.summary_xfailures  sE    ++$$--.5""**4&&y+U&KrA   r  c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	r0   r  r3   r  ry   r  r9   r:   r;   r<   )r=   s   "r>   r?   r     sC     C CC C
 C C 
CrA   c               	   VR 8w  d   V'       d   V P                  V4      '       d   V P                  V4      pV'       g   R# V P                  RV4       VR8X  d?   V F6  pV P                  V4      pV P	                  V4       V P                  V4       K8  	  R# V FU  pV P                  V4      pV P                  RVRRR7       V P	                  V4       V P                  VP                  4       KW  	  R# R# R# )r|   Nr*  r   r  Tr  r  )	r:  r  r  r  r  r   r  r  r   )	rG   r  r  ry   r  r  r  r   r   s	   &&&$$    r>   r  *TerminalReporter.summary_failures_combined  s     D=Z!8!8,0OOM,JsI.F?&#11#6,,S1-  '
  '"66s;sCTE,,S166szzB	  ' "9 rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     * * *rA   c                	   V P                   P                  P                  R 8w  d   V P                  R4      pV'       g   R# V P	                  RR4       V P
                  R,           Fg  pV P                  V4      pVP                  R8X  d   RV,           pMRVP                   RV 2pV P	                  R	VR
R
R7       V P                  V4       Ki  	  R# R# )r|   r)   Nr*  ERRORSr   zERROR collecting z	ERROR at z of r  Tr  )	r   r   rz   r  r  r   r  r   r  )rG   r  r  r   s   &   r>   r  TerminalReporter.summary_errors  s    ;;%%-(,(@GNN3)zz'**..s388y(-3C%chhZtC59CsCT=$$S) + .rA   c                    V ^8  d   QhRRRR/# )r0   r  r"   r:   r;   r<   )r=   s   "r>   r?   r     s     # #: #$ #rA   c                	b   VP                  V P                  4       V P                  P                  P                  pVR 8X  d   R# VP
                   FZ  w  r4VR8w  d	   W#9  d   K  V P                  P                  RV4       VRR R8X  d   VRR pV P                  P                  V4       K\  	  R# )r|   Nr   r.  rY  r  )rY  r   r   r   r   r  r  r   r  s   &&   r>   r   TerminalReporter._outrep_summary  s    txx kk((44$ #Ge#(BHHLLg&rs|t#!#2,HHMM'" !-rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     #0 #0t #0rA   c                	   V P                   R8  d   R# V P                  P                  4       pV P                  4       w  r#. pV P                   ^ 8  pV'       d   V P                  P
                  pV F]  w  rxV P                  P                  ! V3/ VB p	V'       d#   X\        V	4      \        V4      ,
          ,          pVP                  V	4       K_  	  RP                  V4      p
VR/pR\        VP                  4       2pV P                  P                  ! V3/ VB pV'       d#   X\        V4      \        V4      ,
          ,          pW,          p
V'       dS   V P                  P                  ! R	/ VB pVP                  R4      '       d   VRR
 pX\        V4      ,          pW,          p
V'       d   V P                  ! RV
3RX/VB  R# V P                  ! V
3/ VB  R# )r  NrF  Tz in z[0mr*  r   r  r   )r  r1  r!  build_summary_stats_liner   r   r>  r2  rJ  r   format_session_durationr"  r  r  r   )rG   session_durationpartsr
  
line_partsdisplay_sepr   textr>  with_markupr   main_markupr  duration_with_markupmarkup_for_end_seps   &              r>   r  TerminalReporter.summary_stats  s   >>B..668";;=
nn)**I!LD((//$9&9KS-D	99	k*	 "
 ii
#!4(12B2J2JKLM#xxxG;G12S]BBI#!%!C{!C!**955%7%<"/00I%CNN3HyHKHOOC/;/rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r     s     j& j&D j&rA   c                	  a a
a S P                   '       g   R # R V 3R llpR V 3R llpR V 3R llpR V 3R llo
R	 V 3R
 lloR V V
V3R llpRVRVR\        VRR7      RVR\        VRR7      R\        VRR7      /p. pS P                    F&  pVP                  V4      pV'       g   K  V! V4       K(  	  V'       d2   S P                  RRRRR7       V F  p	S P	                  V	4       K  	  R # R # )Nc               $    V ^8  d   QhRRRRRR/# )r0   r;  rD  statr3   r:   r;   r<   )r=   s   "r>   r?   9TerminalReporter.short_test_summary.<locals>.__annotate__  s!     
	# 
	#y 
	#3 
	#4 
	#rA   c                 < SP                   P                  V. 4      pV'       g   R # SP                  pV FG  p\        P                  V\        4      p\        W4SP                  VR/4      pV P                  V4       KI  	  R # )NT)r   r9  r   _color_for_type_color_for_type_default _get_line_with_reprcrash_messager   rJ  )r;  r"  r&   r   r  r   r   rG   s   &$     r>   show_simple8TerminalReporter.short_test_summary.<locals>.show_simple  sj    ZZ^^D"-F[[F'++D2IJ7E4= T" rA   c                    V ^8  d   QhRRRR/# r0   r;  rD  r:   r;   r<   )r=   s   "r>   r?   r#    s     	# 	#	 	#d 	#rA   c                  < S	P                   P                  R . 4      pV F  pVP                  S	P                  \        R,          R/4      w  r4S	P
                  P                  ! V3/ VB p\        S	P
                  S	P                  V4      pV RV 2pVP                  pV'       d   VR\        V4      ,           ,          pV P                  V4       K  	  R# )r7  r(   Tr    - Nr   r9  _get_verbose_word_with_markupr   r%  r   r>  _get_node_id_with_markupr  r3   rJ  )
r;  r7  r  verbose_wordverbose_markupmarkup_wordr   r   r  rG   s
   &        r>   show_xfailed9TerminalReporter.short_test_summary.<locals>.show_xfailed  s    jjnnY3G/2/P/PKK/*"=t!D0, #hhoolMnM1$((DKKM%ax0ECK//DT" rA   c                    V ^8  d   QhRRRR/# r+  r<   )r=   s   "r>   r?   r#    s     	# 	#	 	#d 	#rA   c                  < S	P                   P                  R . 4      pV F  pVP                  S	P                  \        R,          R/4      w  r4S	P
                  P                  ! V3/ VB p\        S	P
                  S	P                  V4      pV RV 2pVP                  pV'       d   VR\        V4      ,           ,          pV P                  V4       K  	  R# )r  r(   Tr   r-  Nr.  )
r;  r  r  r1  r2  r3  r   r   r  rG   s
   &        r>   show_xpassed9TerminalReporter.short_test_summary.<locals>.show_xpassed  s    jjnnY3G/2/P/PKK/*"=t!D0, #hhoolMnM1$((DKKM%ax0ECK//DT" rA   c                    V ^8  d   QhRRRR/# r+  r<   )r=   s   "r>   r?   r#    s     	N 	Ny 	NT 	NrA   c                  < SP                   P                  R . 4      pV'       d   \        SP                  V4      M. pV'       g   R# V^ ,          P	                  SP
                  \        R,          R/4      w  r4SP                  P                  ! V3/ VB pRpV Fl  w  rxrV
P                  V4      '       d   V
\        V4      R p
V	e"   V P                  V RV RV RV	 RV
 2	4       KP  V P                  V RV RV RV
 24       Kn  	  R# )	r   Nr(   T	Skipped: r  z] r   rc  )r   r9  _folded_skipsr   r/  r   r%  r   r>  
startswithr2  rJ  )r;  r   fskipsr1  r2  r3  rK  numrF  r  r  rG   s   &          r>   show_skipped_folded@TerminalReporter.short_test_summary.<locals>.show_skipped_folded  s    +/::>>)R+HG?F]4>>7;BF+21:+S+Soj94@,(L ((//,I.IK F/5+V$$V,,#CKM2F%LLK=3%r&6("VH!UVLLK=3%r&F8!LM 06rA   c                    V ^8  d   QhRRRR/# r+  r<   )r=   s   "r>   r?   r#  1  s     	# 	# 	#t 	#rA   c                  < S	P                   P                  R . 4      pV EF'  pVP                  f   Q h\        VP                  \        4      '       g   Q W"P                  34       h\        VP                  4      ^8X  g   Q W"P                  34       hVP                  S	P                  \        R,          R/4      w  r4S	P                  P                  ! V3/ VB p\        S	P                  S	P                  V4      pV RV 2pVP                  ^,          pV'       d   VR\        V4      ,           ,          pV P                  V4       EK*  	  R# )r   Nr(   Tr   r-  )r   r9  r  rt  r  r2  r/  r   r%  r   r>  r0  r3   rJ  )
r;  r   r  r1  r2  r3  r   r   r  rG   s
   &        r>   show_skipped_unfoldedBTerminalReporter.short_test_summary.<locals>.show_skipped_unfolded1  s   +/::>>)R+HG||///!#,,66Kll8KK63<<(A-B\\/BB-/2/P/PKK/*"=t!D0, #hhoolMnM1$((DKKM%ax0aECK//DT" rA   c                    V ^8  d   QhRRRR/# r+  r<   )r=   s   "r>   r?   r#  D  s     	- 	-	 	-d 	-rA   c                P   < SP                   '       d   S! V 4       R # S! V 4       R # rV   )r   )r;  rG   rA  rE  s   &r>   show_skipped9TerminalReporter.short_test_summary.<locals>.show_skippedD  s    #E*%e,rA   r8  r  fr&   )r"  r   pr'   r   r)   r*  zshort test summary infoT)r  r  )rt   r   r9  r  r   )rG   r(  r4  r8  rI  REPORTCHAR_ACTIONSr;  r   rk   r   rA  rE  s   f         @@r>   r  #TerminalReporter.short_test_summary  s    
	# 
	#	# 	#	# 	#	N 	N$	# 	#&	- 	- 848473I
 $$D'++D1Fvu %
 NN3 94NP%  rA   c                   V ^8  d   QhRR/# )r0   r:   ztuple[str, list[str]]r<   )r=   s   "r>   r?   r   ^  s     3 3!6 3rA   c                	    V P                   e!   V P                  e   V P                  '       d9   V P                  4        V P                   '       g   Q hV P                  '       g   Q hV P                   V P                  3# rV   )r   r   r  r  r  s   &r>   r   TerminalReporter._get_main_color^  sk    #t'8'8'@DDVDVDV  "#####$$$$$!2!222rA   c                    V ^8  d   QhRRRR/# )r0   unknown_type_seenr7   r:   r3   r<   )r=   s   "r>   r?   r   e  s     
 
t 
 
rA   c                	    V P                   pR V9   g   RV9   d   RpV# RV9   g   RV9   g	   V'       d   RpV# RV9   g   V P                  '       g   RpV# RpV# )r&   r)   r  r(   r  r  r'   r  )r   r  )rG   rS  r   r
  s   &&  r>   _determine_main_color&TerminalReporter._determine_main_colore  sw    

u5 0J  5 I$6:K!J
 	 d&8&8&8 J  "JrA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r   q  s     K K KrA   c                	   . pV P                    F3  pV'       g   K  V\        9  g   K  W!9  g   K"  VP                  V4       K5  	  \        \        4      V,           V n        V P                  \        V4      4      V n        R # rV   )r   KNOWN_TYPESrJ  listr   rU  r7   r   )rG   unknown_types
found_types   &  r>   r   TerminalReporter._set_main_colorq  sa    #%**Jz[0Z5T!((4 % !-=55d=6IJrA   c                   V ^8  d   QhRR/# r0   r:   z-tuple[list[tuple[str, dict[str, bool]]], str]r<   )r=   s   "r>   r?   r   z  s     ; ;*W ;rA   c                    V P                   P                  R4      '       d   V P                  4       # V P                  4       # )a2  
Build the parts used in the last summary stats line.

The summary stats line is the line shown at the end, "=== 12 passed, 2 errors in Xs===".

This function builds a list of the "parts" that make up for the text in that line, in
the example above it would be::

    [
        ("12 passed", {"green": True}),
        ("2 errors", {"red": True}
    ]

That last dict for each line is a "markup dictionary", used by TerminalWriter to
color output.

The final color of the line is also determined by this function, and is the second
element of the returned tuple.
rU  )r   r  &_build_collect_only_summary_stats_line _build_normal_summary_stats_liner  s   &r>   r  )TerminalReporter.build_summary_stats_linez  s7    ( ;;  //>>@@88::rA   c                    V ^8  d   QhRRRR/# )r0   keyr3   r:   z	list[Any]r<   )r=   s   "r>   r?   r     s     Q Q3 Q9 QrA   c                    V P                   P                  V. 4      pV Uu. uF  p\        VRR4      '       g   K  VNK  	  up# u upi )zRGet test/collection reports for the given status key, such as `passed` or `error`.r   T)r   r9  rQ   )rG   re  r  r8  s   &&  r>   r  (TerminalReporter._get_reports_to_display  s<    **..b)"P7aga1H$&O7PPPs
   AAc                   V ^8  d   QhRR/# r_  r<   )r=   s   "r>   r?   r     s     ! !	6!rA   c                	>   V P                  4       w  r. pV Fn  pV P                  V4      pV'       g   K  \        V4      p\        P	                  V\
        4      pVR RWq8H  /pVP                  R\        Wd4      ,          V34       Kp  	  V'       g   R\
        R /3.pW13# )Tr  %d %szno tests ran)r  r  r2  r%  r9  r&  rJ  	pluralize)	rG   r
  known_typesr  re  r  ri   r   r>  s	   &        r>   rb  1TerminalReporter._build_normal_summary_stats_line  s     #'"6"6"8
C2237GwG'++C1HIvu/BCg	%(==vFG  $'>&EFGE  rA   c                   V ^8  d   QhRR/# r_  r<   )r=   s   "r>   r?   r     s     ! !	6!rA   c                	   \        V P                  R 4      4      p\        V P                  R4      4      pV P                  ^ 8X  d   RRR/3.pRpM}V^ 8X  d'   RpR\        V P                  R4      ,          pWTR/3.pMPV P                  V8H  pV'       d
   RpRV R	2pM*RpV P                  V,
          pV R
V P                   RV R	2pWTR/3.pV'       d-   \        R,          pVR\        VR4      ,          VR/3.,          pW43# )r  r)   zno tests collectedr  Tr  z%d %s collectedtestzno tests collected (z deselected)r  z tests collected (rj  )r2  r  r   rk  r%  )rG   r  rs  r  r
  collected_outputall_tests_were_deselectedr$  s   &       r>   ra  7TerminalReporter._build_collect_only_summary_stats_line  s2    55lCD
T11':;"*Xt,<=>E!J1_ J09T=O=OQW3XX&T(:;<E(,(:(:j(H%(%
%9*\#R $
--
:&.Zq1C1C0DDVWaVbbn#o &T(:;<E(1Jw67!;;j$=OPQQE  rA   )r  r  r  r   r   r   r   r   r   r1  r  r   r  r   r   r   r   r   r   r   rt   r   r   rV   r  )NN)r*  )F)QrW   rX   rY   rZ   rF   r   propertyr  r  rm   rn   r'  setterr.  r3  r:  rH  rP  rU  rd  rE  rl  rA  r   r}  r  r  r   r  r  r  r  r  r  r  r  r   r  r  r  rD  r  r  r  r  r<  r9  r8  rZ  rX  r  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rU  r  r  r  rb  ra  r\   r<   rA   r>   r   r   y  s   B<2   # # 2 2 3 3    
 ! ! J J 4 4(	2$&
7 	7
 7 7,75 71u 1&5$6'!#
6!-JX F F d +Z= A . .A"""H d7 74*,-,N< d 4 d$ $F- .T4l>@? 
1'JL
C "&C4*##0Jj&X3
K;2Q
!&! !rA   r   c               $    V ^8  d   QhRRRRRR/# )r0   twr   r   r   r  r"   r<   )r=   s   "r>   r?   r?     s!        j rA   c                    VP                  VP                  4      pVP                  R 4      vrEV'       d3   V P                  R P	                  V4      RR7      pVR ,           V,           # V# )r@  Tr+  )r  r   rC  r>  r   )rw  r   r  r   pathr  parts_markups   &&&    r>   r0  r0    sX    ''

3F<<%LDyy5!1y=d{\))rA   c               (    V ^8  d   QhRRRRRRRR/# )r0   r=   r3   r   r  r   r:   r9   r<   )r=   s   "r>   r?   r?     s(      C c C J rA   c                p   VP                  R4      pVR8w  d   VRV pRp\        V P                  R4      4      pV\        V4      ,           V8  d   R# V\        V4      ,           V8  d>   V\        V4      ,          pVRV pV\        V4      ,           V8  d   VRR pK  W,          pV P                  V4      # )zxFormat msg into format, ellipsizing it if doesn't fit in available_width.

Returns None if even the ellipsis can't fit.
rY  Nz...r   r  )findr   r=   r2  )r=   r   r  r  ellipsisformat_widths   &&&   r>   r  r    s     	ABw"1gHFMM"-.Lc(m#o5hsm#o53x=("?#Xc]*_<cr(C==rA   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r0   r   r   r  r"   rw  r   word_markupzdict[str, bool]r:   r3   r<   )r=   s   "r>   r?   r?     s4     ! !!#!)7!FU!!rA   c                >   VP                  W4      w  rEVP                  ! V3/ VB p\        W V4      pV RV 2p\        V4      p	 \	        VP
                  \        4      '       d   VP
                  p
M VP
                  P                  P                  p
\        4       '       g   V P                  P                  ^8  d#   V P                  P                  '       g   RV
 2p
MVP                  V	,
          p\        RW4      p
V
e	   W,          pV#   \         d     T# i ; i)z?Get summary line for a report, trying to add reprcrash message.r   r-  z - {})r/  r>  r0  r   rt  r  r3   r  r   r   r   rj   rq   r   r  r  )r   r  rw  r  r1  r2  rb   r  r   
line_widthr   r  s   &&&&        r>   r'  r'    s    $'#D#D$ L 99\4^4D#B4DV1TFD$JcllC((,,C ,,((00C
 OOv}}449--333u+C llZ7O!'3@C?KDK   Ks   AD DDc               $    V ^8  d   QhRRRRRR/# )r0   r   r	   r   zSequence[CollectReport]r:   z&list[tuple[int, str, int | None, str]]r<   )r=   s   "r>   r?   r?     s&      $ ,rA   c                `   / pV F  pVP                   f   Q h\        VP                   \        4      '       g   Q W3P                   34       h\        VP                   4      ^8X  g   Q W3P                   34       hVP                   w  rEp\	        V \        V4      4      p\        VR/ 4      pVP                  R8X  d   RV9   d   RV9  d   VR V3pMWEV3pVP                  V. 4      P                  V4       K  	  . p	VP                  4        F#  w  rV	P                  \        V
4      .VO54       K%  	  V	# )Nkeywordsr   skip
pytestmark)r  rt  r  r2  r!   r	   rQ   r   r  rJ  r  )r   r   deventrF  r  r  r  re  rM   eventss   &&         r>   r=  r=    s    ACA~~)))%..%00I5..2II05>>"a'@%)@@'!&YV55*b1
 JJ'!("H,06f/EC6*C	S"$$U+' ( 68Fwwys6{)S)* !MrA   r  r  r  c               $    V ^8  d   QhRRRRRR/# )r0   ri   r   nounr3   r:   ztuple[int, str]r<   )r=   s   "r>   r?   r?   =  s!     
5 
5S 
5 
5 
5rA   c                b    VR9  d   W3# VP                  RR4      pY ^8w  d   VR,           3# T3# )r)   r(   rP  r   )r)   r(   rp  )r   )ri   r  s   &&r>   rk  rk  =  s@    00{
 <<
I.D
$*4444rA   c                   V ^8  d   QhRR/# )r0   r:   rD  r<   )r=   s   "r>   r?   r?   J  s      	 rA   c                    . pV  FY  w  r#VP                    R VP                   2pVP                  R4      '       d
   VR,          pWA9  g   KH  VP                  V4       K[  	  V# )r.  zpytest-:   NN)project_namer4  r>  rJ  )rQ  rM   r  distrm  s   &    r>   rO  rO  J  s_    F"##$Adll^4??9%%8DMM$ # MrA   c                    V ^8  d   QhRRRR/# r0   r"  floatr:   r3   r<   )r=   s   "r>   r?   r?   X  s     ( (U (s (rA   c                n    V ^<8  d   V R R2# \         P                  ! \        V 4      R7      pV R RV R2# )zQFormat the given seconds in a human readable manner to show in the final summary..2fr   r"  zs (r  )datetime	timedeltar   )r"  dts   & r>   r  r  X  sA    |#a  G5#c"Q''rA   c                    V ^8  d   QhRRRR/# r  r<   )r=   s   "r>   r?   r?   a  s     D D% DC DrA   c                   V R8  d   RV R,          R R2# V R8  d   RV R,          R R2# V R8  d   RV R,          R	 R2# V R
8  d   RV R,          R R2# V R8  d   RV R,          R R2# V ^8  d   RV R,          R	 R2# V ^<8  d   RV R R2# V R8  d   RV ^<,          R RV ^<,          R R2# RV R,          R RV R,          ^<,          R R2# )zQFormat the given seconds in a human readable manner to show in the test progress.gh㈵>r   i@B z.3fusg-C6?r  gMbP?z.1fg{Gz?i  msg?r   i  z.0fzm zh mr<   r  s   &r>   r  r  a  s!    7W$S),,7W$S),,7W$S),,~7T>#&b))}7T>#&b)){7T>#&b))|73-q!!~7b=%R"S'9;;w$s#2w~"&<S%ACCrA   c                    V ^8  d   QhRRRR/# )r0   r   r$   r:   r3   r<   )r=   s   "r>   r?   r?   x  s        rA   c                z   \        V R4      '       d4   V P                  pVP                  R4      '       d   V\        R4      R pV# V P                  '       g   Q h\        V P                  \        4      '       g   Q hV P                  w   r!VP                  R4      '       d   V\        R4      R pV# VR8X  d   RpV# )ziGet the reason string of a skip/xfail/xpass test report.

The string is just the part given by the user.
r  zreason: Nr<  Skippedr   )r  r  r>  r2  r   rt  r  r  )r   r  r  s   &  r>   r  r  x  s    
 vz""Z((C
O-.F~~~~&//511111[))C,./F  y FrA   c                      ] tR tRtRtR R ltRR R llt]R R	 l4       t]R
 R l4       t	]R R l4       t
]R R l4       tRtR# )TerminalProgressPlugini  a  Terminal progress reporting plugin using OSC 9;4 ANSI sequences.

Emits OSC 9;4 sequences to indicate test progress to terminal
tabs/windows/etc.

Not all terminal emulators support this feature.

Ref: https://conemu.github.io/en/AnsiEscapeCodes.html#ConEmu_specific_OSC
c                    V ^8  d   QhRRRR/# )r0   trr   r:   r;   r<   )r=   s   "r>   r?   #TerminalProgressPlugin.__annotate__  s     # #+ # #rA   c                	.    Wn         R V n        RV n        R # )NF)_trr   _has_failures)rG   r  s   &&r>   rF   TerminalProgressPlugin.__init__  s    (,"rA   Nc               $    V ^8  d   QhRRRRRR/# )r0   statez?Literal['remove', 'normal', 'error', 'indeterminate', 'paused']r   r  r:   r;   r<   )r=   s   "r>   r?   r    s(     $1 $1N$1 $1 
	$1rA   c                   Ve   ^ Tu;8:  d	   ^d8:  g   Q h Q hT;R8X  d    RpMJ;R8X  d    Vf   Q hRV R2pM5;R8X  d    Ve   RV R2pM"R	pM;R
8X  d    RpMR8X  d   Ve   RV R2pMRp V P                   P                  XRR7       R# )zEmit OSC 9;4 sequence for indicating progress to the terminal.

:param state:
    Progress state to set.
:param progress:
    Progress value 0-100. Required for "normal", optional for "error"
    and "paused", otherwise ignored.
Nremovez
]9;4;0;\normalz]9;4;1;z\r)   z]9;4;2;z
]9;4;2;\indeterminatez
]9;4;3;\pausedz]9;4;4;z
]9;4;4;\Trk  )r  rl  )rG   r  r   sequences   &&& r>   _emit_progress%TerminalProgressPlugin._emit_progress  s     1#7C#777#777 .+++(
&9'!,XJf=H2H .'!,XJf=H2H840rA   c                    V ^8  d   QhRRRR/# r'  r<   )r=   s   "r>   r?   r    s     - -7 -t -rA   c                	4    Wn         V P                  R 4       R# )r  N)r   r  )rG   r(  s   &&r>   r<  *TerminalProgressPlugin.pytest_sessionstart  s    O,rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r    s     - -$ -rA   c                	    V P                   f   Q hV P                   P                  ^ 8  d   V P                  R^ 4       R # R # )Nr  )r   r  r  r  s   &r>   rZ  /TerminalProgressPlugin.pytest_collection_finish  s9    }}(((==''!+!, ,rA   c                    V ^8  d   QhRRRR/# r  r<   )r=   s   "r>   r?   r    s     W Wz Wd WrA   c                	h   VP                   '       d   R V n        VP                  R8w  d   R# V P                  f   Q hV P                  P                  pV^ 8  dY   V P
                  P                  p\        V^d,          V,          ^d4      pT P                  V P                  '       d   RMRV4       R# R# )TcallNr)   r  )	r&   r  r   r   r  r  r3  minr  )rG   r   r  reportedr   s   &&   r>   r  /TerminalProgressPlugin.pytest_runtest_logreport  s    ===!%D ;;&  }}(((MM00	q=xx11H8c>Y6<H4+=+=+=8XV rA   c                   V ^8  d   QhRR/# rS  r<   )r=   s   "r>   r?   r    s     & &d &rA   c                	(    V P                  R 4       R# )r  N)r  r  s   &r>   r  +TerminalProgressPlugin.pytest_sessionfinish  s    H%rA   )r  r   r  rV   )rW   rX   rY   rZ   r[   rF   r  r   r<  rZ  r  r  r\   r<   rA   r>   r  r    sd    #
$1L - -
 - - W W  & &rA   r  )r&   r'   r   r  r7  r  r(   r)   r*   r+   zsubtests skipped)Zr[   
__future__r   argparsecollectionsr   collections.abcr   r   r   r   dataclassesr  	functoolsr   rh  pathlibr	   r   r   ra  typingr
   r   r   r   r   r   r   r(   r5  r  r   r   r   _pytest._coder   _pytest._code.coder   _pytest._ior   _pytest._io.wcwidthr   _pytest._version_pytest.compatr   r   r   r   r   r   _pytest.config.argparsingr   _pytest.nodesr   r   _pytest.pathlibr    r!   _pytest.reportsr"   r#   r$   _pytest.mainr%   r#  rY  r   Actionr.   r_   r   r   r   r   	dataclassr   r   r0  r  r'  r=  r%  r&  rk  rO  r  r  r  r  r<   rA   r>   <module>r     s  
 #   $ % # $       
               ' , & (  ( ( ! # # ,   ( ' & ) & $  #   "=hoo "=J/ /(Vr?"2 
$, ,   8 O! O! O!d"2!H@ eUgwu # 
5(D.*V& V&rA   