
    ,hh                         S SK r S SKrS SKrS SKJr  S SKJrJrJr  / SQr	\\-  \-  r
 " S S\5      r " S S5      rS	 r " S
 S5      rS rS r " S S\5      rS rS rS rg)    N)contextmanager)CO_GENERATORCO_COROUTINECO_ASYNC_GENERATOR)BdbQuitBdb
Breakpointc                       \ rS rSrSrg)r       N)__name__
__module____qualname____firstlineno____static_attributes__r       ,/opt/python-3.13.8/usr/lib/python3.13/bdb.pyr   r      s     r   r   c                   n   \ rS rSrS6S jrS rS r\S 5       rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS7S jrS rS6S jrS rS rS rS r S6S jr!S  r"S! r#S" r$  S8S# jr%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S9S0 jr2S:S1 jr3S:S2 jr4S3 r5S4 r6S5r7g);r      Nc                     U(       a  [        U5      OS U l        0 U l        0 U l        0 U l        S U l        SU l        S U l        U R                  5         g NF)	setskipbreaksfncacheframe_trace_lines_opcodesframe_returningtrace_opcodes
enterframe_load_breaks)selfr   s     r   __init__Bdb.__init__    sJ    !%CI4	)+&#"r   c                    USUSS -   S-   :X  a  U$ U R                   R                  U5      nU(       dL  [        R                  R	                  U5      n[        R                  R                  U5      nX R                   U'   U$ )N<   >)r   getospathabspathnormcase)r!   filenamecanonics      r   r/   Bdb.canonic+   so     sXa^+c11O,,""8,ggooh/Ggg&&w/G%,LL"r   c                 ^    SS K nUR                  5         S U l        U R                  S S 5        g )Nr   )	linecache
checkcachebotframe_set_stopinfo)r!   r2   s     r   reset	Bdb.reset<   s(    4&r   c              #   .   #    Xl         S v   S U l         g 7fN)r   r!   frames     r   set_enterframeBdb.set_enterframeC   s     s   c                    U R                  U5         U R                  (       a
   S S S 5        g US:X  a  U R                  U5      sS S S 5        $ US:X  a  U R                  X5      sS S S 5        $ US:X  a  U R	                  X5      sS S S 5        $ US:X  a  U R                  X5      sS S S 5        $ US:X  a  U R                  sS S S 5        $ US:X  a  U R                  sS S S 5        $ US:X  a  U R                  sS S S 5        $ US:X  a  U R                  X5      sS S S 5        $ [        S	[        U5      5        U R                  sS S S 5        $ ! , (       d  f       g = f)
Nlinecallreturn	exceptionc_callc_exceptionc_returnopcodez*bdb.Bdb.dispatch: unknown debugging event:)
r<   quittingdispatch_linedispatch_calldispatch_returndispatch_exceptiontrace_dispatchdispatch_opcodeprintrepr)r!   r;   eventargs       r   rL   Bdb.trace_dispatchI   s9   2   '}} (' ))%0	 ('
 ))%5 ('  ++E7 (' #..u: ('  ** (' %** (' 
"**! ('"  ++E7% ('& >UL&&) (''s@   E	E	E	.E	E	.E		E	$E	?E	 E		
Ec                     U R                  U5      (       d  U R                  U5      (       a(  U R                  U5        U R                  (       a  [        eU R
                  $ r9   )	stop_here
break_here	user_linerG   r   rL   r:   s     r   rH   Bdb.dispatch_linex   sD     >>%  DOOE$:$:NN5!}}Gm"""r   c                    U R                   c  UR                  U l         U R                  $ U R                  U5      (       d  U R	                  U5      (       d  g U R
                  (       a.  UR                  R                  [        -  (       a  U R                  $ U R                  X5        U R                  (       a  [        eU R                  $ r9   )r4   f_backrL   rT   break_anywhere	stopframef_codeco_flagsGENERATOR_AND_COROUTINE_FLAGS	user_callrG   r   r!   r;   rQ   s      r   rI   Bdb.dispatch_call   s     == !LLDM&&&u%%)<)<U)C)C>>ell336SS&&&u"==-"""r   c                 
   U R                  U5      (       d  XR                  :X  a  U R                  (       a.  UR                  R                  [
        -  (       a  U R                  $  Xl        U R                  X5        S U l        U R                  (       a  [        eU R                  UL a"  U R                  S:w  a  U R                  S S 5        U R                  S:w  a  U R                  U5        U R                  $ ! S U l        f = fNr'   )rT   returnframer[   r\   r]   r^   rL   r   user_returnrG   r   
stoplinenor5   _set_caller_tracefuncr`   s      r   rJ   Bdb.dispatch_return   s     >>%  E-=-=$=~~%,,"7"7:W"W***,',$  ,'+$}}Gm~~&4??b+@""4. "$**51""" (,$s   &C9 9	Dc                 "   U R                  U5      (       ah  UR                  R                  [        -  (       a  US   [        L a  US   b(  U R                  X5        U R                  (       a  [        eU R                  $ U R                  (       au  XR                  Lag  U R                  R                  R                  [        -  (       a;  US   [        [        4;   a(  U R                  X5        U R                  (       a  [        eU R                  $ )Nr      )rT   r\   r]   r^   StopIterationuser_exceptionrG   r   r[   GeneratorExitrL   r`   s      r   rK   Bdb.dispatch_exception   s     >>%   LL)),IIA-/CFN##E/==- """ nnnn!<NN))225RRF}m<<+}}Gm"""r   c                     U R                  U5      (       d  U R                  U5      (       a(  U R                  U5        U R                  (       a  [        eU R
                  $ r9   )rT   rU   user_opcoderG   r   rL   r`   s      r   rM   Bdb.dispatch_opcode   sF     >>%  DOOE$:$:U#}}Gm"""r   c                 l    Uc  gU R                    H   n[        R                  " X5      (       d  M     g   gNFT)r   fnmatch)r!   module_namepatterns      r   is_skipped_moduleBdb.is_skipped_module   s0    yyG{44 ! r   c                    U R                   (       a0  U R                  UR                  R                  S5      5      (       a  gXR                  L a*  U R
                  S:X  a  gUR                  U R
                  :  $ U R                  (       d  gg)Nr   Fr'   T)r   rw   	f_globalsr)   r[   rf   f_linenor:   s     r   rT   Bdb.stop_here   sg     99%%eoo&9&9*&EFFNN""$>>T__44~~r   c                    U R                  UR                  R                  5      nX R                  ;  a  gUR                  nX0R                  U   ;  a)  UR                  R
                  nX0R                  U   ;  a  g[        X#U5      u  pEU(       aN  UR                  U l        U(       a5  UR                  (       a$  U R                  [        UR                  5      5        ggrs   )r/   r\   co_filenamer   r{   co_firstlineno	effectivenumber	currentbp	temporarydo_clearstr)r!   r;   r.   linenobpflags         r   rU   Bdb.break_here   s     << 8 89;;&X.. \\00F[[22 x7
YYDNc"))n-r   c                     [        S5      e)Nz)subclass of bdb must implement do_clear())NotImplementedError)r!   rQ   s     r   r   Bdb.do_clear  s    
 ""MNNr   c                 f    U R                  UR                  R                  5      U R                  ;   $ r9   )r/   r\   r~   r   r:   s     r   rZ   Bdb.break_anywhere  s&     ||ELL445DDr   c                     g r9   r   )r!   r;   argument_lists      r   r_   Bdb.user_call!      r   c                     g r9   r   r:   s     r   rV   Bdb.user_line%  r   r   c                     g r9   r   )r!   r;   return_values      r   re   Bdb.user_return)  r   r   c                     g r9   r   )r!   r;   exc_infos      r   rl   Bdb.user_exception-  r   r   c                     g r9   r   r:   s     r   rp   Bdb.user_opcode1  r   r   c                     XR                   :w  a=  Xl         U R                  nUb'  Xl        X R                  L a  g UR                  nUb  M&  g g g r9   )r   r   f_trace_opcodesr4   rY   )r!   r   r;   s      r   _set_trace_opcodesBdb._set_trace_opcodes5  sL    ...!.OOE#(5%MM)	 # /r   c                 X    Xl         X l        SU l        X0l        U R	                  U5        g r   )r[   rd   rG   rf   r   )r!   r[   rd   rf   rF   s        r   r5   Bdb._set_stopinfo?  s+     #& %'r   c                     UR                   nU(       a3  UR                  (       d!  X R                  La  U R                  Ul        g g g g r9   )rY   f_tracer4   rL   )r!   current_framecaller_frames      r   rg   Bdb._set_caller_tracefuncN  s<     %++ 4 4]]9Z#'#6#6L  :[ 4<r   c                 L    Uc  UR                   S-   nU R                  XU5        g Nr&   )r{   r5   )r!   r;   r   s      r   	set_untilBdb.set_until[  s'     >^^a'F50r   c                 (    U R                  S S 5        g r9   r5   r!   s    r   set_stepBdb.set_stepc  s    4&r   c                 &    U R                  S S SS9  g )NT)rF   r   r   s    r   set_stepinstrBdb.set_stepinstrg  s    4d3r   c                 (    U R                  US 5        g r9   r   r:   s     r   set_nextBdb.set_nextk  s    5$'r   c                     UR                   R                  [        -  (       a  U R                  US S5        g U R                  UR                  U5        g rc   )r\   r]   r^   r5   rY   r:   s     r   
set_returnBdb.set_returno  s;    <<  #@@udB/u||U3r   c                    Uc  [         R                  " 5       R                  nU R                  5         U R	                  U5         U(       aX  U R
                  Ul        Xl        UR                  UR                  4U R                  U'   SUl        UR                  nU(       a  MX  U R                  5         S S S 5        [         R                  " U R
                  5        g ! , (       d  f       N/= fNT)sys	_getframerY   r6   r<   rL   r   r4   f_trace_linesr   r   r   settracer:   s     r   	set_traceBdb.set_tracev  s    
 =MMO**E

  ' $ 3 3 %9>9L9LeNcNc8d..u5&*# %   ( 	T(() ('s   AC$C
C+c                    U R                  U R                  S S5        U R                  (       d  [        R                  " S 5        [        R
                  " 5       R                  nU(       a3  XR                  La%  U?UR                  nU(       a  XR                  La  M%  U R                  R                  5        H  u  nu  p#X#sUl
        Ul        M     0 U l        g g rc   )r5   r4   r   r   r   r   rY   r   r   itemsr   r   )r!   r;   trace_linesr   s       r   set_continueBdb.set_continue  s     	4==$3{{LLMMO**EE6M E6 8<7U7U7[7[7]33=H:#U%: 8^-/D* r   c                 n    U R                   U l        S U l        SU l        [        R
                  " S 5        g r   )r4   r[   rd   rG   r   r   r   s    r   set_quitBdb.set_quit  s*    
 Tr   c                 j    U R                   R                  U/ 5      nX#;  a  UR                  U5        g g r9   )r   
setdefaultappend)r!   r.   r   
bp_linenoss       r   _add_to_breaksBdb._add_to_breaks  s1    [[++Hb9
#f% $r   c                 D   U R                  U5      nSS KnUR                  X5      nU(       d  SX4-  $ U R                  X5        [	        XX4U5      nU R
                  n	U	(       a<  U R                  U	5      (       a  U R                  U	l        U	R                  n	U	(       a  M<  g )Nr   zLine %s:%d does not exist)
r/   r2   getliner   r	   r   rZ   rL   r   rY   )
r!   r.   r   r   condfuncnamer2   r?   r   r;   s
             r   	set_breakBdb.set_break  s     <<)  2.(1CCCH-)8D ""5)) $ 3 3LLE e r   c                 t    [         R                  R                  5        H  u  pU R                  X5        M     g r9   )r	   bplistkeysr   r!   r.   r   s      r   r    Bdb._load_breaks  s.     #-"3"3"8"8":X1 #;r   c                     X4[         R                  ;  a  U R                  U   R                  U5        U R                  U   (       d  U R                  U	 g g r9   )r	   r   r   remover   s      r   _prune_breaksBdb._prune_breaks  sI     Z%6%66KK!((0{{8$H% %r   c                     U R                  U5      nXR                  ;  a  SU-  $ X R                  U   ;  a  SX4-  $ [        R                  X4   S S   H  nUR	                  5         M     U R                  X5        g )NThere are no breakpoints in %szThere is no breakpoint at %s:%d)r/   r   r	   r   deleteMer   )r!   r.   r   r   s       r   clear_breakBdb.clear_break  s}    
 <<);;&3h>>X..47III ##H$45a8BKKM 98,r   c                      U R                  U5      nUR                  5         U R	                  UR
                  UR                  5        g ! [         a  n[        U5      s S nA$ S nAff = fr9   )get_bpbynumber
ValueErrorr   r   r   filer?   )r!   rQ   r   errs       r   clear_bpbynumberBdb.clear_bpbynumber  sX    
	$$S)B 	277BGG,	  	s8O	s   A
 

A)
A$A)$A)c                     U R                  U5      nXR                  ;  a  SU-  $ U R                  U    H0  n[        R                  X4   nU H  nUR	                  5         M     M2     U R                  U	 g )Nr   )r/   r   r	   r   r   )r!   r.   r?   blistr   s        r   clear_all_file_breaksBdb.clear_all_file_breaks   sp    
 <<);;&3h>>KK)D%%hn5E  * KK!r   c                     U R                   (       d  g[        R                   H  nU(       d  M  UR                  5         M     0 U l         g )NzThere are no breakpoints)r   r	   
bpbynumberr   )r!   r   s     r   clear_all_breaksBdb.clear_all_breaks  s8    
 {{-''Br ( r   c                     U(       d  [        S5      e [        U5      n [        R                  U   nUc  [        SU-  5      eU$ ! [          a    [        SU-  5      S ef = f! [         a    [        SU-  5      S ef = f)NzBreakpoint number expectedz Non-numeric breakpoint number %sz!Breakpoint number %d out of rangezBreakpoint %d already deleted)r   intr	   r   
IndexError)r!   rQ   r   r   s       r   r   Bdb.get_bpbynumber  s     9::	QXF	U&&v.B :<vEFF	  	Q?#EFDP	Q  	U@6IJPTT	Us   A A# A #A=c                 p    U R                  U5      nXR                  ;   =(       a    X R                  U   ;   $ r9   r/   r   r   s      r   	get_breakBdb.get_break0  s3    <<);;& ,kk(++	,r   c                     U R                  U5      nXR                  ;   =(       a,    X R                  U   ;   =(       a    [        R                  X4   =(       d    / $ r9   )r/   r   r	   r   r   s      r   
get_breaksBdb.get_breaks6  sS    
 <<);;& 0kk(++0h./635	6r   c                 d    U R                  U5      nXR                  ;   a  U R                  U   $ / $ r9   r   )r!   r.   s     r   get_file_breaksBdb.get_file_breaks@  s0    
 <<){{";;x((Ir   c                     U R                   $ r9   )r   r   s    r   get_all_breaksBdb.get_all_breaksK  s    {{r   c                    / nU(       a  UR                   UL a  UR                  nUb<  UR                  XR                  45        XR                  L a  OUR
                  nUb  M<  UR                  5         [        S[        U5      S-
  5      nUb8  UR                  UR                   UR                  45        UR                  nUb  M8  Uc  [        S[        U5      S-
  5      nX44$ )Nr   r&   )
tb_frametb_nextr   r{   r4   rY   reversemaxlen	tb_lineno)r!   ftstackis        r   	get_stackBdb.get_stackR  s     q		AmLL!ZZ)MM!A	 m
 	3u:>"mLL!**akk23		A m 9As5zA~&Axr   c                    SS K nSS KnUu  pVU R                  UR                  R                  5      nU< SU< S3nUR                  R
                  (       a  XR                  R
                  -  nOUS-  nUS-  nSUR                  ;   a'  UR                  S   n	US-  nXR                  U	5      -  nUb:  UR                  XvUR                  5      n
U
(       a  XU
R                  5       -   -  nU$ X S3-  nU$ )	Nr   ()z<lambda>z()
__return__z->zWarning: lineno is None)r2   reprlibr/   r\   r~   co_namef_localsrO   r   rz   strip)r!   frame_linenolprefixr2   r  r;   r   r.   srvr?   s              r   format_stack_entryBdb.format_stack_entryi  s     	"$<< 8 89 &)<<%%%AOA	T	5>>)-BIAb!!A$$XuGDtzz|++  9344Ar   c                    Uc  SS K nUR                  nUc  UnU R                  5         [        U[        5      (       a  [        USS5      n[        R                  " U R                  5         [        XU5        SU l        [        R                  " S 5        g ! [         a     N*f = f! SU l        [        R                  " S 5        f = f)Nr   z<string>execT)__main____dict__r6   
isinstancer   compiler   r   rL   r   r   rG   )r!   cmdglobalslocalsr!  s        r   runBdb.run  s    
 ?''G>F

c3#z62CT(()	v& !DMLL	  		 !DMLLs$   ,B 
B# B& "B##B& &Cc                    Uc  SS K nUR                  nUc  UnU R                  5         [        R                  " U R
                  5         [        XU5      SU l        [        R                  " S 5        $ ! [         a     Of = f SU l        [        R                  " S 5        g ! SU l        [        R                  " S 5        f = f)Nr   T)	r!  r"  r6   r   r   rL   evalrG   r   )r!   exprr&  r'  r!  s        r   runevalBdb.runeval  s    
 ?''G>F

T(()	v. !DMLL	  		 DMLL !DMLLs$   
A3 3
B =B" ?B  B" "Cc                 (    U R                  XU5        g r9   )r(  )r!   r%  r&  r'  s       r   runctx
Bdb.runctx  s     	v&r   c                   U R                  5         [        R                  " U R                  5        S n U" U0 UD6nSU l        [        R                  " S 5        U$ ! [         a     N+f = f! SU l        [        R                  " S 5        f = fr   )r6   r   r   rL   r   rG   )r!   funcargskwdsress        r   runcallBdb.runcall  s|    
 	

T(()	%%C !DMLL
  		 !DMLLs#   A 
A(%A+ 'A((A+ +B
)r4   r   r   r   r   r   r   rG   rd   r   r[   rf   r   r9   )r   FFNN)z: NN)8r   r   r   r   r"   r/   r6   r   r<   rL   rH   rI   rJ   rK   rM   rw   rT   rU   r   rZ   r_   rV   re   rl   rp   r   r5   rg   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   r   r  r  r  r(  r-  r0  r7  r   r   r   r   r   r      s   	"'  
-'^
##,#6#6	#6OE%(71'4(4*&0$"& AE0	2&"(,6	.D,('r   r   c                  4    [        5       R                  5         g r9   )r   r   r   r   r   r   r     s    EOOr   c                   d    \ rS rSrSr0 rS/rSS jr\S 5       r	S r
S rS rSS	 jrS
 rS rSrg)r	   i  r&   Nc                    XPl         S U l        Xl        X l        X0l        X@l        SU l        SU l        SU l        [        R                  U l        [        =R                  S-  sl
        U R                  R                  U 5        X4U R                  ;   a   U R                  X4   R                  U 5        g U /U R                  X4'   g )NTr   r&   )r   func_first_executable_liner   r?   r   r   enabledignorehitsr	   nextr   r   r   r   )r!   r   r?   r   r   r   s         r   r"   Breakpoint.__init__  s     *.'		"		 oo1t$<4;;&KK
#**40'+fDKK
#r   c                  H    S[         l        0 [         l        S /[         l        g r   )r	   rB  r   r   r   r   r   clearBreakpointsBreakpoint.clearBreakpoints  s    

!%
r   c                     U R                   U R                  4nS U R                  U R                  '   U R                  U   R                  U 5        U R                  U   (       d  U R                  U	 g g r9   )r   r?   r   r   r   r   )r!   indexs     r   r   Breakpoint.deleteMe  s\     DII&'+$E!!$'{{5!E" "r   c                     SU l         g r   r?  r   s    r   enableBreakpoint.enable  s	    r   c                     SU l         g r   rK  r   s    r   disableBreakpoint.disable  s	    r   c                 Z    Uc  [         R                  n[        U R                  5       US9  g )N)r   )r   stdoutrN   bpformat)r!   outs     r   bpprintBreakpoint.bpprint  s"     ;**CdmmoC(r   c                    U R                   (       a  SnOSnU R                  (       a  US-   nOUS-   nSU R                  UU R                  U R                  4-  nU R
                  (       a  USU R
                  < 3-  nU R                  (       a  USU R                  4-  -  nU R                  (       a)  U R                  S:  a  S	nOS
nUSU R                  U4-  -  nU$ )Nzdel  zkeep zyes  zno   z%-4dbreakpoint   %s at %s:%dz
	stop only if z
	ignore next %d hitsr&   r   z"
	breakpoint already hit %d time%s)r   r?  r   r   r?   r   r@  rA  )r!   dispretsss       r   rS  Breakpoint.bpformat(  s     >>DD<<'>D'>D,T04		4990F F99DII77C;;,~==C99yy1}9TYYOKKC
r   c                 Z    SU R                   < SU R                  < SU R                  < 3$ )Nzbreakpoint z at :)r   r   r?   r   s    r   __str__Breakpoint.__str__F  s    +/;;		499MMr   )
r   r?  r   r>  r   rA  r@  r?   r   r   r9  r9   )r   r   r   r   rB  r   r   r"   staticmethodrE  r   rL  rO  rU  rS  r_  r   r   r   r   r	   r	     sM    * DFJ-( ' '
#)<Nr   r	   c                 "   U R                   (       d  U R                  UR                  :w  a  ggUR                  R                  U R                   :w  a  gU R
                  (       d  UR                  U l        U R
                  UR                  :w  a  ggrs   )r   r?   r{   r\   r  r>  )br;   s     r   checkfuncnamerd  M  sm     ::66U^^#  ||qzz) ''',~~$##u~~5r   c                    [         R                  X4   nU H  nUR                  (       d  M  [        XB5      (       d  M(  U=R                  S-  sl        UR
                  (       d-  UR                  S:  a  U=R                  S-  sl        Mu  US4s  $  [        UR
                  UR                  UR                  5      nU(       a-  UR                  S:  a  U=R                  S-  sl        M  US4s  $ M     g!   US4s s  $ = f)Nr&   r   TFr:  )
r	   r   r?  rd  rA  r   r@  r+  rz   r  )r   r?   r;   	possiblesrc  vals         r   r   r   m  s     !!$*-IyyQ&&	!vvxx!|A 4y 
"1665??ENNCxx!|A !"4y( + D " 5z!s   AC7,C77Dc                   ,    \ rS rSrS rS rS rS rSrg)Tdbi  c                 Z    UR                   R                  nU(       d  Sn[        SX25        g )N???z+++ call)r\   r  rN   )r!   r;   r4  names       r   r_   Tdb.user_call  s"    ||##ETj$%r   c           	      .   SS K nUR                  R                  nU(       d  SnU R                  UR                  R                  5      nUR                  XAR                  UR                  5      n[        SXAR                  USUR                  5       5        g )Nr   rk  z+++r^  )
r2   r\   r  r/   r~   r   r{   rz   rN   r  )r!   r;   r2   rl  fnr?   s         r   rV   Tdb.user_line  sg    ||##ET\\%,,223  ^^U__EeRsDJJLAr   c                     [        SU5        g )Nz
+++ returnrN   )r!   r;   retvals      r   re   Tdb.user_return  s    lF#r   c                 <    [        SU5        U R                  5         g )Nz+++ exception)rN   r   )r!   r;   	exc_stuffs      r   rl   Tdb.user_exception  s    oy)r   r   N)	r   r   r   r   r_   rV   re   rl   r   r   r   r   ri  ri    s    &B$r   ri  c                 R    [        SU S5        [        U S-  5      n[        SU5        g )Nzfoo(r  
   zbar returned)rN   bar)nxs     r   foor}    s%    	&!SAbD	A	.!r   c                 &    [        SU S5        U S-  $ )Nzbar(r  rj   rr  )as    r   rz  rz    s    	&!SQ3Jr   c                  :    [        5       n U R                  S5        g )Nzimport bdb; bdb.foo(10))ri  r(  )r  s    r   testr    s    AEE
#$r   )rt   r   r*   
contextlibr   inspectr   r   r   __all__r^   	Exceptionr   r   r   r	   rd  r   ri  r}  rz  r  r   r   r   <module>r     s     
 	 % B B
* ,| ;>P P +i +y
 y
x
uN uNt@0j# $
%r   