+
    /O|jzO  ã                  ó   € R t ^ RIHt ^ RIt^ RIH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+ ]PX                  RK8  d   ^ RI-H.t. ]'       d   ^ RI/H0t0 ^ RI1H2t2 R  R! lt3R" R# lt4R$ R% lt5R& R' lt6R( R) lt7RLR+ R, llt8R- R. lt9R/ R0 lt:R1 R2 lt;R3 R4 lt<R5 R6 lt=R7 R8 lt>RMR9 R: llt?R; R< lt@R= R> ltA]! R?R*R@7      tB]]P†                   ! RA RB]]B,          4      4       4       tDRC RD ltERE RF ltF ! RG RH4      tGRI RJ ltHR# )Nz3Basic collect and runtest protocol implementations.)ÚannotationsN)ÚCallable)Úcast)Úfinal)ÚGeneric)ÚLiteral)ÚTYPE_CHECKING)ÚTypeVar)ÚConfig)Ú
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   "ÚGC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\_pytest/runner.pyÚ__annotate__r(   3   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-minzcMinimal duration in seconds for inclusion in slowest list. Default: 0.005 (or 0.0 if -vv is given).)ÚgetgroupÚ	addoptionÚintÚfloat)r"   Úgroups   & r'   Úpytest_addoptionr:   3   sa   € Ø�O‰OÐ0°+ÀYˆOÓO€EØ	‡O�OØØÜØØØ@ð ô ð 
‡O�OØØÜØØð3ð ö r)   c               ó    € V ^8„  d   QhRRRR/# )r!   Úterminalreporterr   r#   r$   r%   )r&   s   "r'   r(   r(   H   s   € ÷  Kñ  KÐ.>ð  KÀ4ñ  Kr)   c                óÔ  € V P                   P                  P                  pV P                   P                  P                  pV P                   P	                  4       pVf   R # Vf   V^8  d   RMRp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  r‡VP                  V8  dt   VP                  R4       R\        V4      V,
           RVR R2p	V P                   P                  P                  f
   V	R,          p	V	R,          p	VP                  V	4        R # VP                  VP                  R RVP                  R RVP                    24       KÄ  	  R # )Ng{®Gázt?g        Údurationc                ó   € V P                   # ©N)r>   )Úxs   &r'   Ú<lambda>Ú)pytest_terminal_summary.<locals>.<lambda>X   s   € ˜QŸZšZr)   T)ÚkeyÚreverseÚ=zslowest durationszslowest z
 durationsÚ Ú(z durations < Úgz	s hidden.z"  Use -vv to show these durations.Ú)z02.2fzs z<8Ú )ÚconfigÚoptionÚ	durationsÚdurations_minÚget_verbosityÚstatsÚvaluesÚhasattrÚappendÚsortÚ	write_sepÚ	enumerater>   Ú
write_lineÚlenÚwhenÚnodeid)
r<   rN   rO   ÚverboseÚtrÚdlistÚreplistÚrepÚiÚmessages
   &         r'   Úpytest_terminal_summaryrc   H   s¢  € Ø ×'Ñ'×.Ñ.×8Ñ8€IØ$×+Ñ+×2Ñ2×@Ñ@€MØ×%Ñ%×3Ñ3Ó5€GØÒÙØÒØ!(¨1¤™°#ˆØ	€BØ€EØ—8‘8—?‘?Ö$ˆÛˆCÜ�s˜J×'Ô'Ø—‘˜SÖ!ó ñ %÷ ÙØ	‡J�JÑ'°€JÔ6ßØ
�‰�SÐ-Õ.à
�‰�S˜H Y K¨zÐ:Ô;Ø�j�yÐ!ˆä˜EÖ"‰ˆØ�<‰<˜-Ô'Ø�M‰M˜"ÔØœ#˜e›* q�.Ð)¨°}ÀQÐ6GÀyÐQˆGØ×&Ñ&×-Ñ-×;Ñ;ÒCØÐ?Õ?�Ø�s�NˆGØ�M‰M˜'Ô"ÚØ
�‰˜Ÿ™ eÐ,¨B¨s¯x©x¸¨m¸1¸S¿Z¹Z¸LÐIÖJó #r)   c               ó    € V ^8„  d   QhRRRR/# ©r!   Úsessionr   r#   r$   r%   )r&   s   "r'   r(   r(   k   s   € ÷ 'ñ ' ð '¨Tñ 'r)   c                ó$   € \        4       V n        R # r@   )Ú
SetupStateÚ_setupstate©rf   s   &r'   Úpytest_sessionstartrk   k   s   € Ü$›,€GÖr)   c               ó    € V ^8„  d   QhRRRR/# re   r%   )r&   s   "r'   r(   r(   o   s   € ÷ -ñ - 'ð -¨dñ -r)   c                ó<   € V P                   P                  R 4       R # r@   )ri   Úteardown_exactrj   s   &r'   Úpytest_sessionfinishro   o   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(   s   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# ))r[   Úlocation©rr   T)ÚihookÚpytest_runtest_logstartr[   rv   ÚruntestprotocolÚpytest_runtest_logfinish)rq   rr   rx   s   && r'   Úpytest_runtest_protocolr|   s   sL   € Ø�J‰J€EØ	×!Ñ!¨¯©¸t¿}¹}Ð!ÔMÜ�DÕ,Ø	×"Ñ"¨$¯+©+ÀÇÁÐ"ÔNÙr)   Tc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r!   rq   r   Úlogrt   rr   rs   r#   zlist[TestReport]r%   )r&   s   "r'   r(   r(   {   s,   € ÷ ñ Ø
ðØðØ,7ðàñr)   c           	     ó°  € \        V R 4      pV'       d#   V P                  '       g   V P                  4         \        V RV4      pV.pVP                  '       dt   V P
                  P                  RR4      pV P
                  P                  RR4      '       d   \        W'       * R7       V'       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#   T'       d   RT n        RT n        i i ; i)
Ú_requestÚsetupÚ	setuponlyFÚ	setupshow)Ú	add_spaceÚcallNÚteardownrw   )rS   r€   Ú_initrequestÚcall_and_reportÚpassedrL   Ú	getoptionÚshow_test_itemrT   rf   Ú
shouldfailÚ
shouldstopÚfuncargs)rq   r~   rr   Ú
hasrequestr`   ÚreportsÚ
setup_onlys   &&&    r'   rz   rz   {   s  € ô ˜˜zÓ*€Jß˜$Ÿ-Ÿ-˜-ð 	×ÑÔð!Ü˜d G¨SÓ1ˆØ�%ˆØ�:�:ˆ:ØŸ™×.Ñ.¨{¸EÓBˆJØ�{‰{×$Ñ$ [°%×8Ò8Ü˜t¬~Õ>ßØ—‘œ¨t°V¸SÓAÔBð �<‰<×"×"Ð" d§l¡l×&=×&=Ð&=ØˆHØ�‰” t¨Z¸ÔPÔQ÷ Ø!ˆDŒMØ ˆDŒMØ€Nø÷ Ø!ˆDŒMØ ˆD�Mð ús$   ¸AD< ÂD< Â17D< Ã)D< ÄD< Ä<Ec               ó$   € V ^8„  d   QhRRRRRR/# )r!   rq   r   r„   rt   r#   r$   r%   )r&   s   "r'   r(   r(   š   s!   € ÷ ñ ˜ð ¨Tð °dñ r)   c               óˆ  € V P                   P                  4       pVP                  4        VP                  R4       VP                  V P                  4       \        \        V R. 4      4      pV'       d%   VP                  RRP                  V4       R24       V'       d   VP                  R4       VP                  4        R# )zAShow test function, parameters and the fixtures of the test item.rK   Úfixturenamesz (fixtures used: z, rJ   Nz        )	rL   Úget_terminal_writerÚlineÚwriter[   ÚsortedÚgetattrÚjoinÚflush)rq   r„   ÚtwÚused_fixturess   &$  r'   r‹   r‹   š   s†   € à	�‰×	(Ñ	(Ó	*€BØ‡G�G„IØ‡H�HˆWÔØ‡H�HˆT�[‰[ÔÜœ7 4¨¸Ó<Ó=€MßØ
�‰Ð$ T§Y¡Y¨}Ó%=Ð$>¸aÐ@ÔAßØ
�‰�ŒØ‡H�H†Jr)   c               ó    € V ^8„  d   QhRRRR/# ©r!   rq   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_varrf   ri   r�   )rq   s   &r'   Úpytest_runtest_setupr¢   ¨   s$   € Ü˜T 7Ô+Ø‡L�L×Ñ×"Ñ" 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Ú	Exceptionr1   Ú__traceback__Útb_next)rq   Úes   & r'   Úpytest_runtest_callr´   ­   s³   € Ü˜T 6Ô*ðÜˆMÜˆNÜÐÜ×Ñ˜zÔ)Ü�ðØ�‰Žøô ô Ùðûô ô 	ä˜Q›ŒŒØŒŒÜ×Ñ˜zÔ)ØŒCŒLØ�‰Ò*Ð*Ð*àŸ_™_×4Ñ4ŒÔØûð	ús)   Ž-A ¼A ÁAÁAÁCÁ*A/CÃCc               ó$   € V ^8„  d   QhRRRRRR/# )r!   rq   r   rr   rs   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¡   rf   ri   rn   )rq   rr   s   &&r'   Úpytest_runtest_teardownr·   Å   s.   € Ü˜T :Ô.Ø‡L�L×Ñ×+Ñ+¨HÔ5Ü˜T 4Ö(r)   c               ó$   € V ^8„  d   QhRRRRRR/# )r!   rq   r   rZ   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# )z—Update :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 (rJ   Ú z(null)N)r[   ÚreplaceÚosÚenvironÚpop)rq   rZ   Úvar_nameÚvalues   &&  r'   r¡   r¡   Ë   sP   € ð %€HßØ—;‘;�-˜r $  qÐ)ˆà—‘˜f hÓ/ˆØ$Œ�
‰
�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   )rZ   ÚfailedrÈ   ©rÃ   s   &r'   Úpytest_report_teststatusrÍ   Ü   s6   € Ø‡{�{Ð+Ô+Ø�=�=ˆ=à(Ð(Ø�^�^ˆ^Ø,Ð,àÐÙr)   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r!   rq   r   rZ   z$Literal['setup', 'call', 'teardown']r~   rt   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\        P                  V VV3R lV\        S P                  4      R7      pVP                  S VR7      pV'       d   VP                  VR7       \        WV4      '       d   VP                  S WVR7       V# )	r�   r…   r†   zUnhandled runtest hook case: c                 ó   <€ S! RR S /SB # )rq   r%   r%   )rq   ÚkwdsÚruntest_hooks   €€€r'   rB   Ú!call_and_report.<locals>.<lambda>ú   s   ø€ ‘Ñ/ $Ð/¨$Ò/r)   )rZ   Úreraise©rq   r…   rÌ   ©Únoder…   rÃ   )rx   r¢   r´   r·   ÚCallInfoÚ	from_callÚget_reraise_exceptionsrL   Úpytest_runtest_makereportÚpytest_runtest_logreportÚcheck_interactive_exceptionÚpytest_exception_interact)rq   rZ   r~   rÑ   rx   r…   rÃ   rÒ   s   f&&l   @r'   rˆ   rˆ   ì   sÌ   ú€ ð �J‰J€EØˆw„Ø,1×,FÑ,F‰Ø	�ŒØ×0Ñ0‰Ø	�Ô	Ø×4Ñ4‰à<Ð5°d°VÐ<Ó<ˆuä×ÑÞ/ØÜ& t§{¡{Ó3ð ó €Dð
 ×8Ñ8¸dÈÐ8ÓN€Fß
Ø×&Ñ&¨fÐ&Ô5Ü" 4×0Ò0Ø×'Ñ'¨T¸Ð'ÔLØ€Mr)   c               ó    € V ^8„  d   QhRRRR/# )r!   rL   r
   r#   ztuple[type[BaseException], ...]r%   )r&   s   "r'   r(   r(     s   € ÷ ñ  6ð Ð.Mñ r)   c                ó`   € \         3pV P                  RR4      '       g   V\        3,          pV# )z@Return exception types that should not be suppressed in general.ÚusepdbF)r   rŠ   ÚKeyboardInterrupt)rL   rÔ   s   & r'   rÚ   rÚ     s/   € ä04¨w€GØ×Ñ˜H e×,Ò,ØÔ%Ð'Õ'ˆØ€Nr)   c               ó$   € V ^8„  d   QhRRRRRR/# )r!   r…   zCallInfo[object]rÃ   r   r#   rt   r%   )r&   s   "r'   r(   r(     s"   € ÷ ñ Ð&6ð À
ð Ètñ r)   c                óv  € V P                   f   R# \        VR4      '       d   R# \        P                  P	                  R4      p\        V P                   P                  \        \        P                  ,          4      '       g5   Ve3   \        V P                   P                  VP                  4      '       d   R# R# )zRCheck whether the call raised an exception that should be reported as
interactive.FÚwasxfailÚunittestT)ÚexcinforS   r¨   ÚmodulesÚgetÚ
isinstancerÁ   r   ÚbdbÚBdbQuitÚSkipTest)r…   rÃ   ræ   s   && r'   rÝ   rÝ     s}   € ð ‡|�|ÒáÜˆv�z×"Ò"áÜ�{‰{�‰˜zÓ*€HÜ�$—,‘,×$Ñ$¤g´·±Õ&;×<Ò<ØÒ¤¨D¯L©L×,>Ñ,>À×@QÑ@Q×!RÒ!Rñ Ù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ç   r8   ÚstartÚstopr>   ú/Literal['collect', 'setup', 'call', 'teardown']rZ   Ú	_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ô   r8   rõ   r>   rZ   rö   r÷   rt   r#   r$   r%   )r&   s   "r'   r(   ÚCallInfo.__annotate__4  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>   rZ   )Úselfrù   rç   rô   rõ   r>   rZ   r÷   s   &&&&&&&$r'   Ú__init__ÚCallInfo.__init__4  s*   € ô 	�yÔ!ØŒØŒØŒ
ØŒ	Ø ŒØŽ	r)   c               ó   € V ^8„  d   QhRR/# )r!   r#   rî   r%   )r&   s   "r'   r(   rú   H  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.resultG  s4   € ð �<‰<Ò#Ü  D¡8Ð+?Ð!@ÓAÐAô ”G˜TŸ\™\Ó*Ð*r)   Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r!   ÚfunczCallable[[], TResult]rZ   rö   rÔ   z<type[BaseException] | tuple[type[BaseException], ...] | Noner#   zCallInfo[TResult]r%   )r&   s   "r'   r(   rú   U  s3   € ÷ #
ñ #
à#ð#
ð >ð#
ð Nð	#
ð
 
ñ#
r)   c           
     ót  € Rp\         P                  ! 4       p V! 4       pVP                  4       pV ! VP                  P                  VP                  P                  VP                  VVVRR7      #   \         d<    \        P                  ! 4       pTe   \        TP                  T4      '       d   h Rp L–i ; 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>   rZ   rù   rç   r÷   )r   ÚInstantÚBaseExceptionr   Úfrom_currentrê   rÁ   Úelapsedrô   Útimerõ   Úseconds)Úclsr  rZ   rÔ   rç   Úinstantrù   r>   s   &&&&    r'   rÙ   ÚCallInfo.from_callT  s¨   € ð$ ˆÜ—.’.Ó"ˆð	Ù%)£VˆFð —?‘?Ó$ˆÙØ—.‘.×%Ñ%Ø—‘×#Ñ#Ø×%Ñ%ØØØØô
ð 	
øô ô 	Ü#×0Ò0Ó2ˆGØÒ"¤z°'·-±-À×'IÒ'IØØŠFð		ús   ™A1 Á1AB7Â6B7c               ó   € V ^8„  d   QhRR/# )r!   r#   Ústrr%   )r&   s   "r'   r(   rú   z  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ç   rZ   rò   r  s   &r'   Ú__repr__ÚCallInfo.__repr__z  sH   € Ø�<‰<ÒØ$ T§Y¡Y¡M°¸4¿<¹<Ñ:JÈ!ÐLÐLØ  §¡¡¨Y°t·|±|Ñ6FÀaÐHÐHr)   )rò   r>   rç   rô   rõ   rZ   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ðð  ÷ð& ô
+ó ð
+ð ö#
ó ð#
÷JIñ Ir)   rØ   c               ó$   € V ^8„  d   QhRRRRRR/# )r!   rq   r   r…   zCallInfo[None]r#   r   r%   )r&   s   "r'   r(   r(   €  s!   € ÷ 5ñ 5 Dð 5°ð 5À:ñ 5r)   c                ó.   € \         P                  ! W4      # r@   )r   Úfrom_item_and_callrÕ   s   &&r'   rÛ   rÛ   €  s   € Ü×(Ò(¨Ó4Ð4r)   c               ó    € V ^8„  d   QhRRRR/# ©r!   Ú	collectorr   r#   r   r%   )r&   s   "r'   r(   r(   „  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__…  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   rL   ÚpluginmanagerÚ_loadconftestmodulesÚpathrŠ   r*  ÚgetiniÚlistÚcollect©r#  s   €r'   r0  Ú+pytest_make_collect_report.<locals>.collect…  s‰   ø€ ô �i¤×+Ò+Ø×Ñ×*Ñ*×?Ñ?Ø—‘Ø× Ñ ×*Ñ*¨<Ó8Ø"×)Ñ)×2Ñ2Ø,5×,<Ñ,<×,CÑ,CØ1ó-ð	 @ô ô �I×%Ñ%Ó'Ó(Ð(r)   r0  )rÔ   Nr‰   ræ   rÈ   r–   rË   Ú
toterminal)rØ   rÙ   râ   Ú
SystemExitrç   r   r¨   rè   ré   rT   rí   rê   rÁ   ÚtupleÚ_repr_failure_pyr   ÚreprÚ	reprcrashr  r-  Úlinenorb   Úrepr_failurerS   r   rù   r   r[   r…   )r#  r0  r…   ÚlongreprÚoutcomeÚskip_exceptionsræ   Úr_ÚrÚ	errorinforù   r`   s   f           r'   Úpytest_make_collect_reportrA  „  st  ø€ ÷)ð )ô& ×ÑØ�Ô%6¼
Ð$Cð ó €Dð BF€HØ�<�<ˆ<Ø:BŠä"˜)ˆÜ—;‘;—?‘? :Ó.ˆØÒØ×"Ñ" 8×#4Ñ#4Ô5Ü�d—l‘l×(Ñ(¬%°Ó*@×AÒAØˆGØ×+Ñ+¨D¯L©L¸&ÓAˆBÜ˜bÔ"4×5Ò5Ð?´t¸B³xÓ?Ð5Ø—‘ˆAßˆH�1Ü˜AŸF™F› Q§X¡X¨q¯y©yÐ9‰HàˆGØ!×.Ñ.¨t¯|©|Ó<ˆIÜ˜9 l×3Ò3Ü! )¬S×1Ò1Ð1Ð1Ü,¨YÓ7�	Ø ˆHØ $§§ ˆT�[Š[°$€FÜ
˜	×(Ñ(¨'¸VÓ
D€CØ„HØ€Jr)   c                  óV   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	Rt
R# )rh   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   r#   rt   r%   )r&   s   "r'   r(   rD    s   € ÷ "ñ " 4ð "¨Dñ "r)   c                ó   € WP                   9   # )zQCheck if a node is currently active in the stack -- set up and not
torn down yet.rF  )rü   r×   s   &&r'   Úis_node_activeÚSetupState.is_node_active  s   € ð —z‘zÑ!Ð!r)   c               ó    € V ^8„  d   QhRRRR/# rŸ   r%   )r&   s   "r'   r(   rD    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)	Ú	listchainrG  ÚitemsÚwith_tracebackrY   r†   r�   r   r±   )rü   rq   Úneeded_collectorsÚcolÚ
finalizersÚexcs   &&    r'   r�   ÚSetupState.setup  sï   € à ŸN™NÓ,Ðð '+§j¡j×&6Ñ&6Ö&8Ñ"ˆCÑ"�*ØÔ+ÐWÐ-WÓWÐ+ß‰sØ˜!•f×+Ñ+¨C°­FÓ3Ð3ñ '9ð
 %¤S¨¯©£_Ð%6Ó7ˆCØŸj™jÔ(Ð(Ð(à #§¡˜~¨tÐ4ˆD�J‰J�s‰OðØ—	‘	–ó 8øô  ô Ø#'§:¡:¨c¥?°1Õ#5¸×=NÑ=NÐ7OÐ"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(   rD    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ê   r5  ÚcallablerG  rT   )rü   rX  r×   s   &&&r'   ÚaddfinalizerÚSetupState.addfinalizer  sb   € ÷
 œJ t¬U×3Ò3Ð3Ð3Ü˜	×"Ò"Ð"Ð"Ø—z‘zÔ!Ð5 D¯*©*Ð#5Ó5Ð!Ø�
‰
�4Õ˜Õ×"Ñ" 9Ö-r)   c               ó    € V ^8„  d   QhRRRR/# )r!   rr   rs   r#   r$   r%   )r&   s   "r'   r(   rD  '  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   MœV 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                  \        W§R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)z­Teardown 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éÿÿÿÿ)rO  rG  r/  ÚkeysrY   Úpopitemr¿   r   rT   Úextendr   )rü   rr   rR  Ú
exceptionsr×   rT  Ú_Úthese_exceptionsÚfinr³   Úmsgs   &&         r'   rn   ÚSetupState.teardown_exact'  sR  € ð &×>Ð>¨(×*<Ñ*<Ó*>×EÐEÀ2ÐØ*,ˆ
Ø�j�jˆjÜ�D—J‘J—O‘OÓ%Ó&Ð*;Ð<M¼cÀ$Ç*Á*»oÐ*NÔNØØ$(§J¡J×$6Ñ$6Ó$8Ñ!ˆD‘/�:Ø!ÐßØ —n‘nÓ&�ð/Ù–Eô Ð#Ó$¨Ô)Ø×!Ñ!Ð"2Ö3ß!Ñ!Ø2°4±(Ð;�Ø×!Ñ!Ô"4°SÉ4ÈRÈ4Õ:PÓ"QÖRäˆz‹?˜aÔØ˜Q•-ÐßÜ$Ð%BÀJÉtÐQSÈtÕDTÓUÐUØÒØ—z—z�zÐ!�>‘zñ øô $ô /Ø$×+Ñ+¨A×.Ò.ûð/ús   Â2E' Å'FÅ2F	Æ	FrF  N)r  r  r  r  r  rý   rK  r�   r[  rn   r  r%   r)   r'   rh   rh   ·  s&   † ñ=õ~
õ"õ
õ*.÷ "ñ  "r)   rh   c               ó    € V ^8„  d   QhRRRR/# r"  r%   )r&   s   "r'   r(   r(   J  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# )r1  r…   NrÖ   )rx   Úpytest_collectstartrA  Ú__dict__r¿   rÝ   rÞ   )r#  rx   r`   r…   s   &   r'   Úcollect_one_noderm  J  sk   € Ø�O‰O€EØ	×Ñ¨	ÐÔ2Ø×9Ñ9ÀIÐ9ÓN€CØ�<‰<×Ñ˜F DÓ)€DßÔ+¨D×6Ò6Ø×'Ñ'¨YÈ#Ð'ÔNØ€Jr)   )r¥   é   )TN)T)Ir  Ú
__future__r   rë   Úcollections.abcr   Údataclassesr½   r¨   ÚtypesÚtypingr   r   r   r   r   r	   rL   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   r:   rc   rk   ro   r|   rz   r‹   r¢   r´   r·   r¡   rÍ   rˆ   rÚ   rÝ   rî   Ú	dataclassrØ   rÛ   rA  rh   rm  r%   r)   r'   Ú<module>r~     s1  ðá 9å "ã 
Ý $Û Û 	Û 
Û Ý Ý Ý Ý Ý  Ý å Ý Ý %Ý "Ý Ý Ý 1Ý ,Ý +Ý ,Ý -Ý #Ý #Ý Ý Ý !Ý -Ý $Ý )ð ×Ñ�gÔÝ1çÝ$Ý1õõ* KõF'õ-õ÷õ>õ)õ
õ0)õ!õ"	÷ õ4õñ$ �) tÔ
,€ð Ø×ÑôXIˆw�wÕó XIó ó ðXIõv5õ0÷fP"ñ P"÷fr)   