+
    yjK                       R t ^ RIHt ^ RIt^ RI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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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$H%t% ^ RI$H&t& ^ RI$H't' ^ RI$H(t( ]PR                  RH8  d   ^ RI*H+t+ ]'       d   ^ RI,H-t- ^ RI.H/t/ R R  lt0R! R" lt1R# R$ lt2R% R& lt3R' R( lt4RIR* R+ llt5R, R- lt6R. R/ lt7R0 R1 lt8R2 R3 lt9R4 R5 lt:R6 R7 lt;RJR8 R9 llt<R: R; lt=]! R<R)R=7      t>]]P~                   ! R> R?]]>,          4      4       4       t@R@ RA ltARB RC ltB ! RD RE4      tCRF RG ltDR# )Kz3Basic collect and runtest protocol implementations.)annotationsN)Callable)cast)final)Generic)Literal)TYPE_CHECKING)TypeVar)
BaseReport)CollectErrorRepr)CollectReport)
TestReport)timing)ExceptionChainRepr)ExceptionInfo)TerminalRepr)Parser)check_ispytest)	Collector)	Directory)Item)Node)Exit)OutcomeException)Skipped)TEST_OUTCOME)BaseExceptionGroup)Session)TerminalReporterc                    V ^8  d   QhRRRR/# )   parserr   returnNone )formats   "B/var/www/html/2rare/lib/python3.14/site-packages/_pytest/runner.py__annotate__r'   2   s      V      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       R# )zterminal reporting	Reportinggeneral)afterz--durationsstoreNNz1Show N slowest setup/test durations (N=0 for all))actiontypedefaultmetavarhelpz--durations-ming{Gzt?zJMinimal duration in seconds for inclusion in slowest list. Default: 0.005.)getgroup	addoptionintfloat)r!   groups   & r&   pytest_addoptionr9   2   sa    OO0+YOOE	OO@   
OO  r(   c                    V ^8  d   QhRRRR/# )r    terminalreporterr   r"   r#   r$   )r%   s   "r&   r'   r'   G   s     K K.> K4 Kr(   c                Z   V P                   P                  P                  pV P                   P                  P                  pV P                   P	                  R 4      pVf   R# T p. pVP
                  P                  4        F1  pV F(  p\        VR4      '       g   K  VP                  V4       K*  	  K3  	  V'       g   R# VP                  R RR7       V'       g   VP                  RR4       MVP                  RRV R	24       VRV p\        V4       F  w  rV^8  dO   VP                  V8  d>   VP                  R
4       VP                  R\        V4      V,
           RVR R24        R# VP                  VP                  R RVP                  R RVP                    24       K  	  R# )verboseNdurationc                    V P                   # N)r>   )xs   &r&   <lambda>)pytest_terminal_summary.<locals>.<lambda>U   s    QZZr(   T)keyreverse=zslowest durationszslowest z
 durations (z durations < gz,s hidden.  Use -vv to show these durations.)z02.2fzs z<8 )configoption	durationsdurations_mingetvaluestatsvalueshasattrappendsort	write_sep	enumerater>   
write_linelenwhennodeid)	r;   rM   rN   r=   trdlistreplistrepis	   &        r&   pytest_terminal_summaryr`   G   sl    ''..88I$++22@@M%%..y9G	BE88??$CsJ''S!  % 	JJ'J6
S-.
SHYKz:;jy!E"Q;3<<-7MM"MMCJN#=q0AAmn 
e,Bsxxm1SZZLIJ #r(   c                    V ^8  d   QhRRRR/# r    sessionr   r"   r#   r$   )r%   s   "r&   r'   r'   f   s     ' ' 'T 'r(   c                $    \        4       V n        R # r@   )
SetupState_setupstaterc   s   &r&   pytest_sessionstartrh   f   s    $,Gr(   c                    V ^8  d   QhRRRR/# rb   r$   )r%   s   "r&   r'   r'   j   s     - -' -d -r(   c                <    V P                   P                  R 4       R # r@   )rf   teardown_exactrg   s   &r&   pytest_sessionfinishrl   j   s    &&t,r(   c               $    V ^8  d   QhRRRRRR/# )r    itemr   nextitemItem | Noner"   boolr$   )r%   s   "r&   r'   r'   n   s!      $ + $ r(   c                    V P                   pVP                  V P                  V P                  R 7       \	        WR7       VP                  V P                  V P                  R 7       R# ))rZ   locationro   T)ihookpytest_runtest_logstartrZ   rs   runtestprotocolpytest_runtest_logfinish)rn   ro   ru   s   && r&   pytest_runtest_protocolry   n   sL    JJE	!!t}}!MD,	""$++"Nr(   Tc               (    V ^8  d   QhRRRRRRRR/# )	r    rn   r   logrq   ro   rp   r"   zlist[TestReport]r$   )r%   s   "r&   r'   r'   v   s,      
,7r(   c           	     f   \        V R 4      pV'       d#   V P                  '       g   V P                  4        \        V RV4      pV.pVP                  '       dl   V P
                  P                  RR4      '       d   \        V 4       V P
                  P                  RR4      '       g   VP                  \        V RV4      4       V P                  P                  '       g   V P                  P                  '       d   RpVP                  \        V RWR7      4       V'       d   RV n        RV n        V# )	_requestsetup	setupshowF	setuponlycallNteardownrt   )rR   r}   _initrequestcall_and_reportpassedrK   	getoptionshow_test_itemrS   rc   
shouldfail
shouldstopfuncargs)rn   r{   ro   
hasrequestr^   reportss   &&&   r&   rw   rw   v   s     z*J$--- 	
$
-CeG
zzz;;  e444 {{$$[%88NN?4=> ||$,,"9"9"9NN?4SLM Nr(   c                    V ^8  d   QhRRRR/# r    rn   r   r"   r#   r$   )r%   s   "r&   r'   r'      s     	 	 	$ 	r(   c                l   V P                   P                  4       pVP                  4        VP                  R4       VP                  V P                  4       \        \        V R. 4      4      pV'       d0   VP                  RP                  RP                  V4      4      4       VP                  4        R# )zAShow test function, parameters and the fixtures of the test item.fixturenamesz (fixtures used: {})z, Nz        )
rK   get_terminal_writerlinewriterZ   sortedgetattrr%   joinflush)rn   twused_fixturess   &  r&   r   r      sy    		(	(	*BGGIHHWHHT[[74<=M
'..tyy/GHIHHJr(   c                    V ^8  d   QhRRRR/# r   r$   )r%   s   "r&   r'   r'      s     ) )t ) )r(   c                h    \        V R 4       V P                  P                  P                  V 4       R# )r~   N)_update_current_test_varrc   rf   r~   )rn   s   &r&   pytest_runtest_setupr      s$    T7+LL""4(r(   c                    V ^8  d   QhRRRR/# r   r$   )r%   s   "r&   r'   r'      s      d t r(   c                   \        V R 4        \        =\        =\        =\        P
                  R8  d   \        = T P                  4        R#   \         d     L i ; i  \         du   p\        T4      \        n        T\        n        \        P
                  R8  d   T\        n        TP                  f   Q hTP                  P                  \        n        h Rp?ii ; i)r   N)          )r   sys	last_type
last_valuelast_tracebackversion_infolast_excAttributeErrorruntest	Exceptionr0   __traceback__tb_next)rn   es   & r&   pytest_runtest_callr      s    T6*MNz)    	Qz)CL***__44	s)   -A A AAC*A/CCc               $    V ^8  d   QhRRRRRR/# )r    rn   r   ro   rp   r"   r#   r$   )r%   s   "r&   r'   r'      s!     ) )$ )+ )$ )r(   c                    \        V R 4       V P                  P                  P                  V4       \        V R4       R# )r   N)r   rc   rf   rk   )rn   ro   s   &&r&   pytest_runtest_teardownr      s.    T:.LL++H5T4(r(   c               $    V ^8  d   QhRRRRRR/# )r    rn   r   rY   z+Literal['setup', 'call', 'teardown'] | Noner"   r#   r$   )r%   s   "r&   r'   r'      s$     ! !
!A!	!r(   c                    RpV'       d:   V P                    RV R2pVP                  RR4      pV\        P                  V&   R# \        P                  P	                  V4       R# )zUpdate :envvar:`PYTEST_CURRENT_TEST` to reflect the current item and stage.

If ``when`` is None, delete ``PYTEST_CURRENT_TEST`` from the environment.
PYTEST_CURRENT_TESTz () z(null)N)rZ   replaceosenvironpop)rn   rY   var_namevalues   &&  r&   r   r      sP     %H;;-r$q)fh/$

8


x r(   c                    V ^8  d   QhRRRR/# )r    reportr
   r"   ztuple[str, str, str] | Noner$   )r%   s   "r&   r'   r'      s     	 	Z 	4O 	r(   c                |    V P                   R9   d+   V P                  '       d   R# V P                  '       d   R# R# R# )r~   N)r~   r   )errorEERROR)skippedsSKIPPED)rG   rG   rG   )rY   failedr   r   s   &r&   pytest_report_teststatusr      s6    {{++===((^^^,,r(   c               (    V ^8  d   QhRRRRRRRR/# )	r    rn   r   rY   z$Literal['setup', 'call', 'teardown']r{   rq   r"   r   r$   )r%   s   "r&   r'   r'      s,      
:AEr(   c                  a aa S P                   pVR 8X  d   VP                  oM2VR8X  d   VP                  oMVR8X  d   VP                  oM
Q RT 24       h\        3pS P
                  P                  RR4      '       g   V\        3,          p\        P                  V VV3R lWR7      pVP                  S VR7      pV'       d   VP                  VR	7       \        Wg4      '       d   VP                  S WgR
7       V# )r~   r   r   FzUnhandled runtest hook case: usepdbc                    < S! RR S /SB # )rn   r$   r$   )rn   kwdsruntest_hooks   r&   rB   !call_and_report.<locals>.<lambda>   s    /$/$/r(   )rY   reraisern   r   r   noder   r   )ru   r   r   r   r   rK   r   KeyboardInterruptCallInfo	from_callpytest_runtest_makereportpytest_runtest_logreportcheck_interactive_exceptionpytest_exception_interact)	rn   rY   r{   r   ru   r   r   r   r   s	   f&&l    @r&   r   r      s     JJEw,1,F,F	00		44<5dV<<u04wG;;  511%''/d  D 88d8NF
&&f&5"400''T'LMr(   c               $    V ^8  d   QhRRRRRR/# )r    r   zCallInfo[object]r   r
   r"   rq   r$   )r%   s   "r&   r'   r'      s"      &6 
 t r(   c                    V P                   f   R# \        VR4      '       d   R# \        V P                   P                  \        \
        P                  34      '       d   R# R# )zRCheck whether the call raised an exception that should be reported as
interactive.FwasxfailT)excinforR   
isinstancer   r   bdbBdbQuit)r   r   s   &&r&   r   r      sG     ||vz""$,,$$w&<==r(   TResult)	covariantc                      ] tR tRt$ RtR]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   RR/R R llt]R R l4       t]	RR R ll4       t
R R ltRtR# )r   i  z/Result/Exception info of a function invocation.TResult | None_result#ExceptionInfo[BaseException] | Noner   r7   startstopr>   /Literal['collect', 'setup', 'call', 'teardown']rY   	_ispytestFc               8    V ^8  d   QhRRRRRRRRRRR	R
RRRR/# )r    resultr   r   r   r   r7   r   r>   rY   r   r   rq   r"   r#   r$   )r%   s   "r&   r'   CallInfo.__annotate__  sZ       5 	
   >  
r(   c               	d    \        V4       Wn        W n        W0n        W@n        WPn        W`n        R # r@   )r   r   r   r   r   r>   rY   )selfr   r   r   r   r>   rY   r   s   &&&&&&&$r&   __init__CallInfo.__init__  s*     	y!
	 	r(   c                   V ^8  d   QhRR/# )r    r"   r   r$   )r%   s   "r&   r'   r   3  s     
+ 
+ 
+r(   c                p    V P                   e   \        V : R24      h\        \        V P                  4      # )z\The return value of the call, if it didn't raise.

Can only be accessed if excinfo is None.
z has no valid result)r   r   r   r   r   r   s   &r&   r   CallInfo.result2  s4     <<# D8+?!@AA GT\\**r(   Nc               (    V ^8  d   QhRRRRRRRR/# )	r    funczCallable[[], TResult]rY   r   r   z<type[BaseException] | tuple[type[BaseException], ...] | Noner"   zCallInfo[TResult]r$   )r%   s   "r&   r'   r   @  s3     '
 '
#'
 >'
 N	'

 
'
r(   c           
     ~   Rp\         P                  ! 4       p\         P                  ! 4       p V! 4       p\         P                  ! 4       pW,
          p	\         P                  ! 4       p
V ! VV
V	VVVRR7      #   \         d<    \        P
                  ! 4       pTe   \        TP                  T4      '       d   h Rp Li ; i)ag  Call func, wrapping the result in a CallInfo.

:param func:
    The function to call. Called without arguments.
:type func: Callable[[], _pytest.runner.TResult]
:param when:
    The phase in which the function is called.
:param reraise:
    Exception or exceptions that shall propagate if raised by the
    function, instead of being wrapped in the CallInfo.
NT)r   r   r>   rY   r   r   r   )r   timeperf_counterBaseExceptionr   from_currentr   r   )clsr   rY   r   r   r   precise_startr   precise_stopr>   r   s   &&&&       r&   r   CallInfo.from_call?  s    $ ++-	%)VF **,/{{}
 	
  	#002G"z'--'I'IF		s   A6 6AB<;B<c                   V ^8  d   QhRR/# )r    r"   strr$   )r%   s   "r&   r'   r   i  s     I I# Ir(   c                	    V P                   f    RV P                  : RV P                  : R2# RV P                  : RV P                   : R2# )Nz<CallInfo when=z	 result: >z	 excinfo=)r   rY   r   r   s   &r&   __repr__CallInfo.__repr__i  sH    <<$TYYM4<<:J!LL Yt||6FaHHr(   )r   r>   r   r   r   rY   r@   )__name__
__module____qualname____firstlineno____doc____annotations__r   propertyr   classmethodr   r  __static_attributes__r$   r(   r&   r   r     sl     :00L
KO
99  & 
+ 
+ '
 '
RI Ir(   r   c               $    V ^8  d   QhRRRRRR/# )r    rn   r   r   zCallInfo[None]r"   r   r$   )r%   s   "r&   r'   r'   o  s!     5 5D 5 5: 5r(   c                .    \         P                  ! W4      # r@   )r   from_item_and_callr   s   &&r&   r   r   o  s    ((44r(   c                    V ^8  d   QhRRRR/# r    	collectorr   r"   r   r$   )r%   s   "r&   r'   r'   s  s     0 0) 0 0r(   c                  a  R  V 3R llp\         P                  VR\        \        3R7      pRpVP                  '       g   RpEMO\
        .p\        P                  P                  R4      pVe   VP                  VP                  4       \        VP                  P                  \        V4      4      '       d   RpS P                  VP                  R4      p\        V\        4      '       g   Q \!        V4      4       hVP"                  pV'       g   Q h\%        VP&                  4      VP(                  VP*                  3pMTR	pS P-                  VP                  4      p	\/        V	R
4      '       g$   \        V	\$        4      '       g   Q h\1        V	4      p	T	pVP                  '       g   VP2                  MRp
\5        S P6                  WCV
4      pW+n        V# )c                   V ^8  d   QhRR/# )r    r"   zlist[Item | Collector]r$   )r%   s   "r&   r'   0pytest_make_collect_report.<locals>.__annotate__t  s     ) )+ )r(   c                 T  < \        S \        4      '       dz   S P                  P                  P	                  S P
                  S P                  P                  R 4      S P                  P                  S P                  P                  R4      R7       \        S P                  4       4      # )
importmodeconsider_namespace_packages)rootpathr  )r   r   rK   pluginmanager_loadconftestmodulespathr   r  getinilistcollectr  s   r&   r$  +pytest_make_collect_report.<locals>.collectt  s     i++**??  **<8"))22,5,<,<,C,C1-	 @  I%%'((r(   r$  )r   Nr   unittestr   r   r   
toterminal)r   r   r   
SystemExitr   r   r   modulesgetrS   SkipTestr   r   tuple_repr_failure_pyr   repr	reprcrashr  r!  linenomessagerepr_failurerR   r   r   r   rZ   r   )r  r$  r   longreproutcomeskip_exceptionsr'  r_r	errorinfor   r^   s   f           r&   pytest_make_collect_reportr:  s  st   ) )& %6
$C  D BFH<<<:B");;??:.""8#4#45dll((%*@AAG++DLL&ABb"455?tBx?5AH1AFFQXXqyy9HG!..t||<I9l33!)S1111,Y7	 H $T[[$F
	(('V
DCHJr(   c                  J    ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRt	R# )re   i  a  Shared state for setting up/tearing down test items or collectors
in a session.

Suppose we have a collection tree as follows:

<Session session>
    <Module mod1>
        <Function item1>
    <Module mod2>
        <Function item2>

The SetupState maintains a stack. The stack starts out empty:

    []

During the setup phase of item1, setup(item1) is called. What it does
is:

    push session to stack, run session.setup()
    push mod1 to stack, run mod1.setup()
    push item1 to stack, run item1.setup()

The stack is:

    [session, mod1, item1]

While the stack is in this shape, it is allowed to add finalizers to
each of session, mod1, item1 using addfinalizer().

During the teardown phase of item1, teardown_exact(item2) is called,
where item2 is the next item to item1. What it does is:

    pop item1 from stack, run its teardowns
    pop mod1 from stack, run its teardowns

mod1 was popped because it ended its purpose with item1. The stack is:

    [session]

During the setup phase of item2, setup(item2) is called. What it does
is:

    push mod2 to stack, run mod2.setup()
    push item2 to stack, run item2.setup()

Stack:

    [session, mod2, item2]

During the teardown phase of item2, teardown_exact(None) is called,
because item2 is the last item. What it does is:

    pop item2 from stack, run its teardowns
    pop mod2 from stack, run its teardowns
    pop session from stack, run its teardowns

Stack:

    []

The end!
c                   V ^8  d   QhRR/# )r    r"   r#   r$   )r%   s   "r&   r'   SetupState.__annotate__  s     
 
$ 
r(   c                	    / V n         R # r@   stackr   s   &r&   r   SetupState.__init__  s      	
r(   c                    V ^8  d   QhRRRR/# r   r$   )r%   s   "r&   r'   r=    s      $ 4 r(   c                &   VP                  4       pV P                  P                  4        F<  w  pw  rEW29   g   Q R4       hV'       g   K  V^ ,          P                  V^,          4      h	  V\	        V P                  4      R  FB  pW0P                  9  g   Q hVP
                  .R3V P                  V&    VP                  4        KD  	  R#   \         d;   pT P                  T,          ^ ,          YUP                  33T P                  T&   h Rp?ii ; i)z4Setup objects along the collector chain to the item.z(previous item was not torn down properlyN)		listchainr@  itemswith_tracebackrX   r   r~   r   r   )r   rn   needed_collectorscol
finalizersexcs   &&    r&   r~   SetupState.setup  s     NN, '+jj&6&6&8"C"*+W-WW+s!f++CF33 '9
 %S_%67Cjj((( #~t4DJJsO		 8   #'::c?1#5=N=N7O"P

3s   5CD5DDc               $    V ^8  d   QhRRRRRR/# )r    	finalizerzCallable[[], object]r   r   r"   r#   r$   )r%   s   "r&   r'   r=    s"     . .&: .$ .4 .r(   c                   V'       d   \        V\        4      '       d   Q h\        V4      '       g   Q hW P                  9   g   Q W P                  34       hV P                  V,          ^ ,          P	                  V4       R# )zWAttach a finalizer to the given node.

The node must be currently active in the stack.
N)r   r-  callabler@  rS   )r   rM  r   s   &&&r&   addfinalizerSetupState.addfinalizer  sb    
 JtU3333	""""zz!5D**#55!

4""9-r(   c                    V ^8  d   QhRRRR/# )r    ro   rp   r"   r#   r$   )r%   s   "r&   r'   r=    s      "  "{  "t  "r(   c           	     "   T;'       d    VP                  4       ;'       g    . p. pV P                  '       d   \        V P                  P                  4       4      VR\	        V P                  4       8X  d   MV P                  P                  4       w  pw  rV. pV'       d   VP                  4       p V! 4        K"  \	        V4      ^8X  d   VP                  V4       K  V'       g   K  RV: 2p
VP                  \        WRRR1,          4      4       K  \	        V4      ^8X  d
   V^ ,          hV'       d   \        RVRRR1,          4      hVf   V P                  '       d   Q hR# R#   \         d   p	TP                  T	4        Rp	?	K  Rp	?	ii ; i)zTeardown the current stack up until reaching nodes that nextitem
also descends from.

When nextitem is None (meaning we're at the last item), the entire
stack is torn down.
Nzerrors while tearing down zerrors during test teardown)rD  r@  r#  keysrX   popitemr   r   rS   extendr   )r   ro   rG  
exceptionsr   rI  _these_exceptionsfinr   msgs   &&         r&   rk   SetupState.teardown_exact  sR    %==););)=CC*,
jjjDJJOO%&*;<Mc$**o*NN$(JJ$6$6$8!D/:! nn&/E #$)!!"23!!24(;!!"4S4R4:P"QRz?aQ-$%BJtQStDTUUzzz!>z  $ /$++A../s   2E' 'F2F		Fr?  N)
r	  r
  r  r  r  r   r~   rP  rk   r  r$   r(   r&   re   re     s!    =~
*. "  "r(   re   c                    V ^8  d   QhRRRR/# r  r$   )r%   s   "r&   r'   r'   4  s      	 m r(   c                    V P                   pVP                  V R 7       VP                  V R 7      pVP                  P	                  RR4      pV'       d%   \        W24      '       d   VP                  WVR7       V# )r%  r   Nr   )ru   pytest_collectstartr:  __dict__r   r   r   )r  ru   r^   r   s   &   r&   collect_one_noderb  4  sk    OOE		299I9NC<<FD)D+D66''Y#'NJr(   )r      )TN)T)Er  
__future__r   r   dataclassesr   r   typestypingr   r   r   r   r   r   r	   r   r
   r   r   r   _pytestr   _pytest._code.coder   r   r   _pytest.config.argparsingr   _pytest.deprecatedr   _pytest.nodesr   r   r   r   _pytest.outcomesr   r   r   r   r   exceptiongroupr   _pytest.mainr   _pytest.terminalr   r9   r`   rh   rl   ry   rw   r   r   r   r   r   r   r   r   r   	dataclassr   r   r:  re   rb  r$   r(   r&   <module>rr     s(   9 " 
  	 
           % "   1 , + , - # #   ! - $ ) g1$1*K>'-8	)
0)!"	 4 )t
, \Iww \I  \I~50fK" K"\r(   