
    .hhS/                        S SK r S SKrS SKJr  S rSqSr0 r0 r0 r	0 r
S rS r " S S5      r " S	 S
5      rS r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rS rS rS rS r\S:X  a  S SKJr  \" SSSS9  gg)     N)debuggeridb_adaptergui_adapterc                 .    [        U 5      nU [        U'   U$ N)id
frametable)framefids     ;/opt/python-3.13.8/usr/lib/python3.13/idlelib/debugger_r.py
wrap_framer   (   s    
U)CJsOJ    c                 V    U c  g U S   n[        U5      nU[        U'   U S   U S   U4nU$ )N   r      )r   tracebacktable)info	tracebacktraceback_idmodified_infos       r   	wrap_infor   -   s@    |G	)}'0|$a$q'<8r   c                   $    \ rS rSrS rSS jrSrg)GUIProxy9   c                     Xl         X l        g r   connoid)selfr   gui_adap_oids      r   __init__GUIProxy.__init__;   s    	r   Nc           	      ~    U R                   R                  U R                  SU[        U5      [	        U5      40 5        g )Ninteraction)r   
remotecallr   r   r   )r   messager
   r   s       r   r$   GUIProxy.interaction?   s4     			TXX}%z%'8)D/J	!r   r   r   __name__
__module____qualname____firstlineno__r!   r$   __static_attributes__ r   r   r   r   9   s     !r   r   c                       \ 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S rS rS rS rS rSrg)
IdbAdapterF   c                     Xl         g r   idb)r   r4   s     r   r!   IdbAdapter.__init__H   s    r   c                 8    U R                   R                  5         g r   )r4   set_stepr   s    r   r7   IdbAdapter.set_stepM       r   c                 8    U R                   R                  5         g r   )r4   set_quitr8   s    r   r<   IdbAdapter.set_quitP   r:   r   c                 8    U R                   R                  5         g r   )r4   set_continuer8   s    r   r?   IdbAdapter.set_continueS   s    r   c                 L    [         U   nU R                  R                  U5        g r   )r	   r4   set_nextr   r   r
   s      r   rB   IdbAdapter.set_nextV   s    3% r   c                 L    [         U   nU R                  R                  U5        g r   )r	   r4   
set_returnrC   s      r   rF   IdbAdapter.set_returnZ   s    3E"r   c                     [         U   nUc  S nO	[        U   nU R                  R                  X45      u  pVU VVs/ s H  u  px[	        U5      U4PM     nnnXV4$ s  snnf r   )r	   r   r4   	get_stackr   )	r   r   tbidr
   tbstackiframe2ks	            r   rI   IdbAdapter.get_stack^   sb    3<B%B88%%e0:?@%YV*V$a(%@x As   Ac                 V    SS K nU R                  R                  XR                  5        g )Nr   )__main__r4   run__dict__)r   cmdrR   s      r   rS   IdbAdapter.runh   s    S++,r   c                 <    U R                   R                  X5      nU$ r   )r4   	set_breakr   filenamelinenomsgs       r   rX   IdbAdapter.set_breakl   s    hh  2
r   c                 <    U R                   R                  X5      nU$ r   )r4   clear_breakrY   s       r   r_   IdbAdapter.clear_breakp   s    hh""84
r   c                 <    U R                   R                  U5      nU$ r   )r4   clear_all_file_breaksr   rZ   r\   s      r   rb    IdbAdapter.clear_all_file_breakst   s    hh,,X6
r   c                 *    [         U   n[        X25      $ r   )r	   getattr)r   r   namer
   s       r   
frame_attrIdbAdapter.frame_attrz   s    3u##r   c                 X    [         U   nUR                  n[        U5      nU[        U'   U$ r   )r	   	f_globalsr   	dicttable)r   r   r
   gdictdids        r   frame_globalsIdbAdapter.frame_globals~   s+    3i	#
r   c                 X    [         U   nUR                  n[        U5      nU[        U'   U$ r   )r	   f_localsr   rl   )r   r   r
   ldictrn   s        r   frame_localsIdbAdapter.frame_locals   s+    3i	#
r   c                 X    [         U   nUR                  n[        U5      nU[        U'   U$ r   )r	   f_coder   	codetable)r   r   r
   codecids        r   
frame_codeIdbAdapter.frame_code   s+    3||h	#
r   c                 ,    [         U   nUR                  $ r   )rx   co_namer   rz   ry   s      r   	code_nameIdbAdapter.code_name   s    ~||r   c                 ,    [         U   nUR                  $ r   )rx   co_filenamer   s      r   code_filenameIdbAdapter.code_filename   s    ~r   c                     [        S5      e)Nz"dict_keys not public or pickleable)NotImplementedErrorr   rn   s     r   	dict_keysIdbAdapter.dict_keys   s    !"FGGr   c                 B    [        [        U   R                  5       5      $ r   )listrl   keysr   s     r   dict_keys_listIdbAdapter.dict_keys_list   s    IcN'')**r   c                 F    [         U   U   n[        R                  " U5      $ r   )rl   reprlibrepr)r   rn   keyvalues       r   	dict_itemIdbAdapter.dict_item   s    #s#||E""r   r3   N)r)   r*   r+   r,   r!   r7   r<   r?   rB   rF   rI   rS   rX   r_   rb   rh   ro   rt   r{   r   r   r   r   r   r-   r.   r   r   r0   r0   F   sg    
 !#-$ H+#r   r0   c                     [        X5      n[        R                  " U5      n[        U5      nU R	                  [
        U5        [
        $ r   )r   r   Idbr0   registeridb_adap_oid)
rpchandlerr    	gui_proxyr4   idb_adaps        r   start_debuggerr      s;     2I
,,y
!C#Hh/r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)

FrameProxy   c                 8    Xl         X l        SU l        0 U l        g )Nr   )_conn_fid_oid
_dictcache)r   r   r   s      r   r!   FrameProxy.__init__   s    
	!	r   c                    US S S:X  a  [        U5      eUS:X  a  U R                  5       $ US:X  a  U R                  5       $ US:X  a  U R                  5       $ U R                  R                  U R                  SU R                  U40 5      $ )Nr   _rw   rk   rr   rh   )AttributeError_get_f_code_get_f_globals_get_f_localsr   r%   r   r   r   rg   s     r   __getattr__FrameProxy.__getattr__   s    8s? &&8##%%;&&((:%%''zz$$TYY&*ii%6< 	<r   c                     U R                   R                  U R                  SU R                  40 5      n[	        U R                   U R                  U5      $ )Nr{   )r   r%   r   r   	CodeProxy)r   rz   s     r   r   FrameProxy._get_f_code   s=    jj##DII|dii\2NTYY44r   c                     U R                   R                  U R                  SU R                  40 5      nU R	                  U5      $ )Nro   r   r%   r   r   _get_dict_proxyr   s     r   r   FrameProxy._get_f_globals   s:    jj##DII%)YYL"6##C((r   c                     U R                   R                  U R                  SU R                  40 5      nU R	                  U5      $ )Nrt   r   r   s     r   r   FrameProxy._get_f_locals   s:    jj##DII~%)YYL"6##C((r   c                     XR                   ;   a  U R                   U   $ [        U R                  U R                  U5      nX R                   U'   U$ r   )r   	DictProxyr   r   )r   rn   dps      r   r   FrameProxy._get_dict_proxy   sB    //!??3''tzz499c2!	r   )r   r   r   r   N)r)   r*   r+   r,   r!   r   r   r   r   r   r-   r.   r   r   r   r      s     
<5)
)
r   r   c                        \ rS rSrS rS rSrg)r      c                 (    Xl         X l        X0l        g r   )r   r   _cid)r   r   r   rz   s       r   r!   CodeProxy.__init__       
		r   c                     US:X  a3  U R                   R                  U R                  SU R                  40 5      $ US:X  a3  U R                   R                  U R                  SU R                  40 5      $ g )Nr~   r   r   r   )r   r%   r   r   r   s     r   r   CodeProxy.__getattr__   sk    9::((K*.))r; ;= ::((O*.))r; ; !r   )r   r   r   N)r)   r*   r+   r,   r!   r   r-   r.   r   r   r   r      s    
;r   r   c                   ,    \ rS rSrS rS rS rS rSrg)r      c                 (    Xl         X l        X0l        g r   )r   r   _did)r   r   r   rn   s       r   r!   DictProxy.__init__  r   r   c                 h    U R                   R                  U R                  SU R                  40 5      $ )Nr   r   r%   r   r   r8   s    r   r   DictProxy.keys  s.    zz$$TYY%5		|RI 	Ir   c                 j    U R                   R                  U R                  SU R                  U40 5      $ )Nr   r   )r   r   s     r   __getitem__DictProxy.__getitem__  s/    zz$$TYY&*ii%5r; 	;r   c                     [        U5      er   )r   r   s     r   r   DictProxy.__getattr__  s    T""r   )r   r   r   N)	r)   r*   r+   r,   r!   r   r   r   r-   r.   r   r   r   r      s    I;#r   r   c                        \ rS rSrS rS rSrg)
GUIAdapteri  c                     Xl         X l        g r   r   gui)r   r   r   s      r   r!   GUIAdapter.__init__  s    	r   c                 h    [        U R                  U5      nU R                  R                  XU5        g r   )r   r   r   r$   )r   r&   r   r   r
   s        r   r$   GUIAdapter.interaction  s&    499c*W];r   r   Nr(   r.   r   r   r   r     s    <r   r   c                   \    \ 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g)IdbProxyi$  c                 (    X0l         Xl        X l        g r   )r   r   shell)r   r   r   r   s       r   r!   IdbProxy.__init__&  s    	
r   c                T    U R                   R                  U R                  XU5      nU$ r   )r   r%   r   )r   
methodnameargskwargsr   s        r   callIdbProxy.call+  s#    		$$TXXzHr   c                     U R                   R                  U R                  SU40 5      nX0R                  R                  l        g )NrS   )r   
asyncqueuer   r   interp
active_seq)r   rU   localsseqs       r   rS   IdbProxy.run1  s2    ii""488USFB?'*

$r   c                     U R                  SUR                  U5      u  p4U VVs/ s H  u  pV[        U R                  U5      U4PM     nnnX44$ s  snnf )NrI   )r   r   r   r   )r   r
   rJ   rL   rM   r   rO   s          r   rI   IdbProxy.get_stack6  sM    99[%**d;?DEuVS*TYY,a0uEx Fs   $Ac                 &    U R                  S5        g )Nr?   r   r8   s    r   r?   IdbProxy.set_continue<  s    		.!r   c                 &    U R                  S5        g )Nr7   r   r8   s    r   r7   IdbProxy.set_step?      		*r   c                 <    U R                  SUR                  5        g )NrB   r   r   r   r
   s     r   rB   IdbProxy.set_nextB  s    		*ejj)r   c                 <    U R                  SUR                  5        g )NrF   r   r   s     r   rF   IdbProxy.set_returnE  s    		,

+r   c                 &    U R                  S5        g )Nr<   r   r8   s    r   r<   IdbProxy.set_quitH  r   r   c                 *    U R                  SX5      nU$ )NrX   r   rY   s       r   rX   IdbProxy.set_breakK  s    iiX6
r   c                 *    U R                  SX5      nU$ )Nr_   r   rY   s       r   r_   IdbProxy.clear_breakO  s    iix8
r   c                 *    U R                  SU5      nU$ )Nrb   r   rc   s      r   rb   IdbProxy.clear_all_file_breaksS  s    ii/:
r   )r   r   r   N)r)   r*   r+   r,   r!   r   rS   rI   r?   r7   rB   rF   r<   rX   r_   rb   r-   r.   r   r   r   r   $  s>    
+
"*,r   r   c                     U R                  SS[        40 5      q[        X[        5      n[        R
                  " X5      n[        X5      nU R                  [        U5        U$ Nexecstart_the_debugger)r%   r    r   r   r   Debuggerr   r   )rpccltpyshell	idb_proxyr   gui_adaps        r   start_remote_debuggerr  W  sY      $$V-A$0?B8L,7I


G
/C&&H
OOL(+Jr   c                 D    [        U 5        U R                  [        5        g r   )close_subprocess_debugger
unregisterr    r  s    r   close_remote_debuggerr  o  s     f%
l#r   c                 6    U R                  SS[        40 5        g )Nr  stop_the_debugger)r%   r   r  s    r   r  r  {  s    
f1L?BGr   c                 6    U R                  SS[        40 5      ng r  )r%   r    )r  idb_adap_oid_rets     r   restart_subprocess_debuggerr  ~  s    ((1E*6">r   rR   )mainz!idlelib.idle_test.test_debugger_rr   F)	verbosityexit)r   typesidlelibr   	debuggingr   r    r	   rl   rx   r   r   r   r   r0   r   r   r   r   r   r   r  r  r  r  r)   unittestr  r.   r   r   <module>r     s   ,   	 
		

! !e# e#T,' 'T; ; # #0	< 	<1 1f0
$HP z	,F r   