
   |_                       S SK r S SKrS SKrS SKJrJr  S SKJrJ	r	J
r
  SS jr " S S\	5      r " S S\	5      r " S	 S
\5      rS r\S:X  a  S SKJr  \" SSSS9  S SKJr  \" \5        gg)    N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvasc                    Uc  [         R                  " U 5      n[        USSS9q[        R                  R                  SSS9  [        X5      q[        [        R                  S [        5      q
[        R                  5         g )Nwhiter   )bghighlightthickness   both)expandfill)tkToplevelr   scframepackStackTreeItemitemr   canvasnoder   )rootexcflisttops       */usr/lib/python3.13/idlelib/stackviewer.pyStackBrowserr      s\    
{kk$	A	>BHHMMM($DBIItT*DKKM    c                   0    \ rS rSrSS jrS rS rS rSrg)	r      Nc                     X l         U R                  Uc  S OUR                  5      U l        [	        U5      R
                   S[        U5       3U l        g )Nz: )r   	get_stack__traceback__stacktype__name__strtext)selfr   r   s      r   __init__StackTreeItem.__init__   sD    
^^CKDS=N=NO
Cy))*"SXJ7	r   c                     / nU(       a  UR                   c  UR                  nUb8  UR                  UR                   UR                  45        UR                  nUb  M8  U$ N)tb_frametb_nextappend	tb_lineno)r*   tbr%   s      r   r#   StackTreeItem.get_stack   sQ    "++%BnLL"++r||45B n r   c                     U R                   $ r.   )r)   r*   s    r   GetTextStackTreeItem.GetText&   s    yyr   c                 |    / nU R                    H)  n[        X R                  5      nUR                  U5        M+     U$ r.   )r%   FrameTreeItemr   r1   )r*   sublistinfor   s       r   
GetSubListStackTreeItem.GetSubList)   s6    JJD zz2DNN4   r   )r   r%   r)   r.   )	r'   
__module____qualname____firstlineno__r+   r#   r7   r=   __static_attributes__ r   r   r   r      s    8
r   r   c                   ,    \ rS rSrS rS rS rS rSrg)r:   1   c                     Xl         X l        g r.   )r<   r   )r*   r<   r   s      r   r+   FrameTreeItem.__init__3   s    	
r   c                    U R                   u  p UR                  S   nUR                  nUR                  nUR                  n[
        R                  " XR5      nUR                  5       nUS;   a	  SX2U4-  nU$ SX6X'4-  nU$ !   Sn Nh= f)Nr'   ?)rI    Nz%s, line %d: %sz%s.%s(...), line %d: %s)r<   	f_globalsf_codeco_filenameco_name	linecachegetlinestrip)	r*   r   linenomodnamecodefilenamefuncname
sourceliner   s	            r   r7   FrameTreeItem.GetText7   s    			ooj1G ||##<<&&x8
%%'
&$'DDD  --30A AD	Gs   B Bc                     U R                   u  p/ nUR                  UR                  La2  [        SUR                  U R                  5      nUR                  U5        [        SUR                  U R                  5      nUR                  U5        U$ )Nz<locals>z	<globals>)r<   rK   f_localsVariablesTreeItemr   r1   )r*   r   rR   r;   r   s        r   r=   FrameTreeItem.GetSubListI   sk    		??%..0$ZLDNN4  eootzzJtr   c                     U R                   (       ae  U R                  u  pUR                  R                  n[        R
                  R                  U5      (       a  U R                   R                  X25        g g g r.   )r   r<   rL   rM   ospathisfilegotofileline)r*   r   rR   rU   s       r   OnDoubleClickFrameTreeItem.OnDoubleClickS   sR    :: IIME||//Hww~~h''

''9 ( r   )r   r<   N)	r'   r?   r@   rA   r+   r7   r=   rb   rB   rC   r   r   r:   r:   1   s    $:r   r:   c                   ,    \ rS rSrS rS rS rS rSrg)r[   [   c                     U R                   $ r.   )	labeltextr6   s    r   r7   VariablesTreeItem.GetText]   s    ~~r   c                     g r.   rC   r6   s    r   GetLabelTextVariablesTreeItem.GetLabelText`   s    r   c                 2    [        U R                  5      S:  $ )Nr   )lenobjectr6   s    r   IsExpandableVariablesTreeItem.IsExpandablec   s    4;;!##r   c                     / nU R                   R                  5        HC  n U R                   U   nX R                   4S jn[        US-   X45      nUR	                  U5        ME     U$ ! [         a     MV  f = f)Nc                     XU'   g r.   rC   )valuekeyobject_s      r   setfunction1VariablesTreeItem.GetSubList.<locals>.setfunctionm   s	    $r   z =)rn   keysKeyErrorr   r1   )r*   r;   rt   rs   rv   r   s         r   r=   VariablesTreeItem.GetSubListf   sv    ;;##%CC( (+KK %&sTz5FDNN4  &   s   A&&
A43A4rC   N)	r'   r?   r@   rA   r7   rj   ro   r=   rB   rC   r   r   r[   r[   [   s    $r   r[   c                 Z   SSK Jn  [        R                  " U 5      nUR	                  S5        [        [        U R                  5       R                  S5      SS  5      u  p4UR                  SUS-   US-   4-  5        U" U5      n [          g ! [         a  n[        X&XRS	9   S nAg S nAff = f)
Nr   )PyShellFileListzTest StackViewer+r   z+%d+%d2      )r   r   )idlelib.pyshellr|   r   r   titlemapintgeometrysplitintentional_name_error	NameErrorr   )parentr|   r   xyr   es          r   _stackbrowserr   t   s    /
++f
CII !sFOO%++C045DALLQVQW--.C E3 3S523s   B 
B*
B%%B*__main__)mainz"idlelib.idle_test.test_stackviewer   F)	verbosityexit)run)NN)rO   r^   tkinterr   idlelib.debugobjr   r   idlelib.treer   r   r   r   r   r:   r[   r   r'   unittestr   idlelib.idle_test.htestr   rC   r   r   <module>r      sr     	  @ ; ;H 6':H ':T 2
3 z	-G+ r   