+
    -j{6                       R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIt^ RIt^ RI	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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 R lt"R R lt#R R lt$ ! R R4      t% ! R R4      t& ! R R4      t'R R lt(R  R! lt)R" R# lt*R$ R% lt+R& R' lt,R# )(z4Interactive debugging with PDB, the Python Debugger.)annotationsN)Callable)	Generator)Any)outcomes)ExceptionInfo)CaptureManager)Config)ConftestImportFailure)hookimpl)PytestPluginManager)Parser)
UsageError)Node)
BaseReport)CallInfoc                    V ^8  d   QhRRRR/# )   valuestrreturnztuple[str, str] )formats   "f/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/_pytest/debugging.py__annotate__r      s                c                     V P                  R4      w  rW3#   \         d!   p\        P                  ! T : R24      ThRp?ii ; i)z#Validate syntax of --pdbcls option.:z) is not in the format 'modname:classname'N)split
ValueErrorargparseArgumentTypeError)r   modname	classnamees   &   r   _validate_usepdb_clsr%      sV    "[[-
 	  ((i@A
	s    A>Ac                    V ^8  d   QhRRRR/# )r   parserr   r   Noner   )r   s   "r   r   r   )   s      V  r   c                    V P                  R 4      pVP                  RRRRR7       VP                  RRR\        R	R
7       VP                  RRRRR7       R# )generalz--pdbusepdb
store_truezDStart the interactive Python debugger on errors or KeyboardInterrupt)destactionhelpz--pdbcls
usepdb_clszmodulename:classnamez{Specify a custom interactive Python debugger for use with --pdb.For example: --pdbcls=IPython.terminal.debugger:TerminalPdb)r-   metavartyper/   z--tracetracez(Immediately break when running each testN)getgroup	addoptionr%   )r'   groups   & r   pytest_addoptionr7   )   sq    OOI&E	OOS	   
OO&!F   
OO7	  r   c                    V ^8  d   QhRRRR/# )r   configr	   r   r(   r   )r   s   "r   r   r   A   s      V  r   c                *  a ^ RI oV P                  R4      '       d%   V P                  P                  \	        4       R4       V P                  R4      '       d%   V P                  P                  \        4       R4       \        P                  P                  SP                  \        P                  \        P                  34       \        P                  Sn	        V P                  \        n
        V \        n        R V3R llpV P                  V4       R# )    Nr3   pdbtracer+   	pdbinvokec                   V ^8  d   QhRR/# r   r   r(   r   )r   s   "r   r   &pytest_configure.<locals>.__annotate__R   s     # # #r   c                 z   < \         P                  P                  4       w  S n        \         n        \         n        R # N)	pytestPDB_savedpop	set_trace_pluginmanager_config)pdbs   r   finpytest_configure.<locals>.finR   s-    
   "		
M$r   )rI   getvaluepluginmanagerregisterPdbTrace	PdbInvokerC   rD   appendrF   rG   rH   add_cleanup)r9   rJ   rI   s   & @r   pytest_configurerS   A   s    w%%hj*=x  %%ik;?		00)2C2CD ''CM%33II# # sr   c                      ] tR t^\t$ RtRtR]R&   RtR]R&   . tR]R&   ^ t	Rt
R	]R
&   ]R R l4       t]R R l4       t]R R l4       t]R 4       t]R R l4       tRtR# )rC   z'Pseudo PDB that defers to the real pdb.NzPytestPluginManager | NonerG   zConfig | NonerH   zKlist[tuple[Callable[..., None], PytestPluginManager | None, Config | None]]rD   z"tuple[type[Any], type[Any]] | None_wrapped_pdb_clsc                    V ^8  d   QhRRRR/# )r   capmanCaptureManager | Noner   z
str | boolr   )r   s   "r   r   pytestPDB.__annotate__h   s      #8 Z r   c                	6    V'       d   VP                  4       # R # )F)is_capturing)clsrW   s   &&r   _is_capturingpytestPDB._is_capturingg   s    &&((r   c                   V ^8  d   QhRR/# r   rW   rX   r   )r   s   "r   r   rY   n   s     $ $%: $r   c                	   V P                   '       g   ^ RIpVP                  # V P                   P                  R4      pV P                  '       d,   V P                  ^ ,          V8X  d   V P                  ^,          # V'       dg   Vw  rE \        V4       \        P                  V,          pVP                  R4      p\        Wg^ ,          4      pVR,           F  p	\        W4      pK  	  M^ RIpVP                  pV P                  W4      pW<3V n        V#   \         d+   p
RP                  YE34      p\        RT: RT
 24      T
hRp
?
ii ; i)r;   Nr0   .:   NNr   z--pdbcls: could not import z: )rH   rI   PdbrL   rU   
__import__sysmodulesr   getattr	Exceptionjoinr   _get_pdb_wrapper_class)r\   rW   rI   r0   r"   r#   modpartspdb_clspartexcr   wrapped_clss   &&           r   _import_pdb_clspytestPDB._import_pdb_clsm   s,   {{{ 77N[[)),7
C$8$8$;z$I''**!+G7#kk'* ",!#Qx0!"IID%g4G & ggG00A *8  '!56 1%"SEBs   A D E	%EE	c                   V ^8  d   QhRR/# r`   r   )r   s   "r   r   rY      s     Y  Y 5J Y r   c                	8   a aaa ^ RI o ! VVV V3R lRS4      pV# )r;   Nc                    <a  ] tR t^t ZtRtV V3R lt]!  ZR4      '       d    ZP                  P                  ]n        V VV3R lt	]!  ZR4      '       d    ZP                  P                  ]	n        ]	;t
tV V3R lt]!  ZR4      '       d    ZP                  P                  ]n        ]t]tV 3R ltV 3R	 ltR
tV ;t# ):pytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapperFc                	   < S;P                   ^,          un         \        SV `	  V4      pS;P                   ^,          un         V# )rc   )_recursive_debugsuperdo_debugselfargret	__class__r\   s   && r   r{   CpytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapper.do_debug   s9    $$)$g&s+$$)$
r   r{   c                	f  < \         SV `  V4      pSP                  ^ 8X  d   SP                  f   Q hSP                  P                  SP                  4      pVP                  4        V P                  p\        P                  V4      pV'       dH   VR8X  d   VP                  RR4       MVP                  RRV R24       Vf   Q hVP                  4        MVP                  RR4       SP                  f   Q hSP                  P                  P                  SP                  V R7       RV n        V# )	r;   global>z#PDB continue (IO-capturing resumed)z'PDB continue (IO-capturing resumed for )zPDB continuer9   rI   T)rz   do_continuery   rH   r9   create_terminal_writerline_pytest_capmanrC   r]   sepresumerG   hookpytest_leave_pdb
_continued)	r}   r~   r   twrW   	capturingr   _pytestr\   s	   &&    r   r   FpytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapper.do_continue   s	   g)#.''1,;;222 >>s{{KBGGI!00F ) 7 7 ?I $0FF3(MNFF #"I)TU V  &111sN3))555""''88QU8V"&
r   r   c                	t   < \         SV `  V4      pSP                  ^ 8X  d   \        P                  ! R4       V# )r;   Quitting debugger)rz   do_quitry   r   exitr|   s   && r   r   BpytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapper.do_quit   s3     goc*''1,MM"56
r   r   c                   < \         SV `  W4      pV'       gA   V P                  '       d/   V P                  '       d   V P                  P	                  RR7       V# )z^Suspend on setup().

Needed after do_continue resumed, and entering another
breakpoint again.
Tin_)rz   setupr   r   suspend_global_capture)r}   ftbr   r   s   &&& r   r   @pytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapper.setup   sH     gmA*t ***++BBtBL
r   c                	   < \         SV `  W4      w  r4Vf_   \        ^ \        V4      ^,
          4      pV'       d;   W4,          ^ ,          P                  P                  RR4      '       d   V^,          pKB  W43# )N__tracebackhide__F)rz   	get_stackmaxlenf_localsget)r}   r   tstackir   s   &&&  r   r   DpytestPDB._get_pdb_wrapper_class.<locals>.PytestPdbWrapper.get_stack   s_     7,Q29As5zA~.A 4 4 8 89Le T TQxr   )r   )__name__
__module____qualname____firstlineno__r   r   r{   hasattr__doc__r   do_cdo_contr   do_qdo_exitr   r   __static_attributes____classcell__)r   r   rW   r\   rn   s   @r   PytestPdbWrapperrw      s    #NJ w
++#*#3#3#;#; 4 w..&-&9&9&A&A#((D7 w	**")//"9"9DG   r   r   )_pytest.config)r\   rn   rW   r   r   s   fff @r   rk    pytestPDB._get_pdb_wrapper_class   s#    T	  T	 w T	 l  r   c                   ^ RI pV P                  f   RpMV P                  P                  R4      pV'       d   VP                  RR7       V P                  '       d   VP
                  P                  V P                  4      pVP                  4        V P                  ^ 8X  d   VP                  RR4      pVe   VP                  RV4       MfV P                  V4      pVR8X  d   VP                  RRV R	24       M7V'       d   VP                  RRV R
V R24       MVP                  RRV 24       V P                  V4      ! R/ VB p	V P                  '       d2   V P                  P                  P                  V P                  V	R7       V	# )z4Initialize PDB debugging, dropping any IO capturing.NcapturemanagerTr   headerr   r   zPDB z (IO-capturing turned off)z (IO-capturing turned off for r   r   r   )r   rG   	getpluginsuspendrH   r9   r   r   ry   rE   r   r]   rr   r   pytest_enter_pdb)
r\   methodargskwargsr   rW   r   r   r   _pdbs
   &&*,      r   	_init_pdbpytestPDB._init_pdb   sT    	%,0F''112BCFNNtN$;;;66s{{CBGGI##q(Hd3%FF3' # 1 1& 9I H,sd6(2L$MN""6(*HSTU
 sd6(O4""6*4V4##44CKKT4Rr   c                   V ^8  d   QhRR/# r?   r   )r   s   "r   r   rY     s      4 r   c                    \         P                  ! 4       P                  pV P                  ! R.VO5/ VB pVP	                  V4       R# )zBInvoke debugging via ``Pdb.set_trace``, dropping any IO capturing.rF   N)rf   	_getframef_backr   rF   )r\   r   r   framer   s   &*,  r   rF   pytestPDB.set_trace  s9     &&}}[:4:6:ur   r   )r   r   r   r   r   rG   __annotations__rH   rD   ry   rU   classmethodr]   rr   rk   r   rF   r   r   r   r   rC   rC   \   s    115N.5!G]! 	    ;?8? 
 $ $L Y  Y v $ $L  r   rC   c                  .    ] tR tRtR R ltR R ltRtR# )rP   i  c               (    V ^8  d   QhRRRRRRRR/# )	r   noder   callzCallInfo[Any]reportr   r   r(   r   )r   s   "r   r   PdbInvoke.__annotate__   s,     3 33 -37A3	3r   c                	   VP                   P                  P                  R 4      pV'       dc   VP                  RR7       VP	                  4       w  rV\
        P                  P                  V4       \
        P                  P                  V4       VP                  f   Q h\        VP                  P                  \        P                  4      '       g   \        WP                  V4       R# R# )r   Tr   N)r9   rM   r   r   read_global_capturerf   stdoutwriteexcinfo
isinstancer   unittestSkipTest
_enter_pdb)r}   r   r   r   rW   outerrs   &&&&   r   pytest_exception_interact#PdbInvoke.pytest_exception_interact   s     **445EF))d)3113HCJJS!JJS!||'''$,,,,h.?.?@@t\\62 Ar   c                    V ^8  d   QhRRRR/# )r   r   ExceptionInfo[BaseException]r   r(   r   )r   s   "r   r   r   .  s      ,H T r   c                	2    \        V4      p\        V4       R # rB   )_postmortem_exc_or_tbpost_mortem)r}   r   	exc_or_tbs   && r   pytest_internalerrorPdbInvoke.pytest_internalerror.  s    )'2	Ir   r   N)r   r   r   r   r   r   r   r   r   r   rP   rP     s    3 r   rP   c                  :    ] tR tRt]! RR7      R R l4       tRtR# )rO   i3  T)wrapperc                   V ^8  d   QhRR/# )r   r   zGenerator[None, object, object]r   )r   s   "r   r   PdbTrace.__annotate__5  s      0O r   c              #  	(   "   \        V4       R x # 5irB   ) wrap_pytest_function_for_tracing)r}   
pyfuncitems   &&r   pytest_pyfunc_callPdbTrace.pytest_pyfunc_call4  s     (4s   r   N)r   r   r   r   r   r   r   r   r   r   rO   rO   3  s    d r   rO   c                   V ^8  d   QhRR/# r?   r   )r   s   "r   r   r   :  s      D r   c                   aa \         P                  R4      oV P                  o\        P                  ! S4      R VV3R ll4       pWn        R# )zChange the Python function object of the given Function item by a
wrapper which actually enters pdb before calling the python function
itself, effectively leaving the user in the pdb prompt in the first
statement of the function.runcallc                   V ^8  d   QhRR/# r?   r   )r   s   "r   r   6wrap_pytest_function_for_tracing.<locals>.__annotate__F  s      D r   c                 ^   < \         P                  ! S.V O5/ VB pSP                  V4       R # rB   )	functoolspartialr   )r   r   funcr   testfunctions   *, r   r   1wrap_pytest_function_for_tracing.<locals>.wrapperE  s)      ???Tr   N)rC   r   objr   wraps)r   r   r   r   s   & @@r   r   r   :  sG    
 y)D>>L
 __\"  # Nr   c                   V ^8  d   QhRR/# r?   r   )r   s   "r   r   r   M  s     5 5$ 5r   c                b    V P                   P                  R4      '       d   \        V 4       R# R# )z]Wrap the given pytestfunct item for tracing support if --trace was given in
the command line.r3   N)r9   rL   r   )r   s   &r   &maybe_wrap_pytest_function_for_tracingr  M  s(     !!'**(4 +r   c               (    V ^8  d   QhRRRRRRRR/# )r   r   r   r   r   repr   r   r   )r   s   "r   r   r   T  s,      
5<Fr   c                f   V P                   P                  P                  R 4      P                  pVP	                  4        V P                   P
                  P                  pRVP                  3RVP                  3RVP                  33 FR  w  rVWER39   g   K  V'       g   K  VP                  RRV,           4       VRR R8X  d   VRR pVP	                  V4       KT  	  VP                  RR	4       VP                  V4       VP                  RR
4       \        V4      pRVn        \        V4       V# )terminalreporterr   stderrlogallr   z	captured N
	tracebackzentering PDBT)r9   rM   r   _twr   optionshowcapture	capstdout	capstderrcaplogr   
toterminalr   	_pdbshownr   )r   r   r  r   r  sectionnamecontent	tb_or_excs   &&&     r   r   r   T  s	    
	"	"	,	,-?	@	D	DBGGI++$$00K 
3==!	3==!	

!
 ..77FF3k12rs|t#!#2,GGG! FF3NN2FF3%g.ICM	Jr   c                    V ^8  d   QhRRRR/# )r   r   r   r   #types.TracebackType | BaseExceptionr   )r   s   "r   r   r   s  s     # #)#(#r   c                   ^ RI Hp \        P                  R8  p\	        V P
                  V4      '       d;   V P
                  pV'       d   VP                  ^,          # VP                  ^,          # \	        V P
                  \        4      '       d=   V P
                  P                  pV'       d   V# VP                  f   Q hVP                  # V P                  f   Q hV'       d   V P                  ^,          # V P                  ^,          # )r;   )UnexpectedException)      )doctestr  rf   version_infor   r   exc_infor
   cause__traceback___excinfo)r   r  get_excunderlying_excr!  s   &    r   r   r   s  s     ,')G'--!455 !!**1--&&q))	GMM#8	9	9 ##L""..."""+++##A&&""r   c                    V ^8  d   QhRRRR/# )r   r  r  r   r(   r   )r   s   "r   r   r     s     + +> +4 +r   c                    \         P                  R 4      pVP                  4        VP                  RV 4       VP                  '       d   \
        P                  ! R4       R# R# )r   Nr   )rC   r   resetinteractionquittingr   r   )r  ps   & r   r   r     sD    M*AGGIMM$	"zzz)* r   )-r   
__future__r   r    collections.abcr   r   r   rf   typestypingr   r   r   r   _pytest._coder   _pytest.capturer   r   r	   r
   r   r   _pytest.config.argparsingr   _pytest.config.exceptionsr   _pytest.nodesr   _pytest.reportsr   _pytest.runnerr   r%   r7   rS   rC   rP   rO   r   r  r   r   r   r   r   r   <module>r7     s    ; "  $ %  
     ' * ! 0 # . , 0  & # 06@ @F ( &5>#>+r   