
    hQgQ                     n   d Z ddlmZ ddlmZmZmZ  e            Zde_        de_	         G d de          Z
 G d de
          Z G d	 d
e
          Z G d de
          Z G d de          ZeeeeeeeeeeeeeeiZddZd Zedk    r'ddlmZ  eddd           ddlmZ  ee           dS dS )z=Define tree items for debug stackviewer, which is only user.
    )Repr)TreeItemTreeNodeScrolledCanvasd   c                   @    e Zd Zd
dZd Zd Zd Zd Zd Zd Z	d	 Z
dS )ObjectTreeItemNc                 0    || _         || _        || _        d S N)	labeltextobjectsetfunction)selfr   object_r   s       "  /home/conda/feedstock_root/build_artifacts/python-split_1733407214354/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.11/idlelib/debugobj.py__init__zObjectTreeItem.__init__   s    "&    c                     | j         S r   )r   r   s    r   GetLabelTextzObjectTreeItem.GetLabelText   s
    ~r   c                 @    t                               | j                  S r   )myreprreprr   r   s    r   GetTextzObjectTreeItem.GetText   s    {{4;'''r   c                 2    |                                  sdS d S )Npython)IsExpandabler   s    r   GetIconNamezObjectTreeItem.GetIconName   s%      "" 	8	 	r   c                     | j         d uS r   )r   r   s    r   
IsEditablezObjectTreeItem.IsEditable!   s    t++r   c                 n    	 t          |          }|                     |           || _        d S #  Y d S xY wr   )evalr   r   )r   textvalues      r   SetTextzObjectTreeItem.SetText#   sC    	 JJEU###  DKKK	DDs   $/ 4c                 .    t          | j                    S r   )dirr   r   s    r   r   zObjectTreeItem.IsExpandable+   s    4;'''''r   c                    t          | j                  }g }|D ]h}	 t          | j        |          }n# t          $ r Y %w xY wt	          t          |          dz   ||| j        fd          }|                    |           i|S )Nz =c                 $    t          |||           S r   )setattrr$   keyr   s      r   <lambda>z+ObjectTreeItem.GetSubList.<locals>.<lambda>8   s    GS%00 r   )r'   r   getattrAttributeErrormake_objecttreeitemstrappend)r   keyssublistr,   r$   items         r   
GetSubListzObjectTreeItem.GetSubList-   s    4; 
	! 
	!CS11!   &C4"%t{ 1 1 12 2D
 NN4    s   2
??r   )__name__
__module____qualname__r   r   r   r   r    r%   r   r6    r   r   r	   r	      s        ' ' ' '  ( ( (  , , ,     ( ( (    r   r	   c                       e Zd Zd Zd ZdS )ClassTreeItemc                     dS )NTr:   r   s    r   r   zClassTreeItem.IsExpandable>   s    tr   c                    t                               |           }t          | j        j                  dk    r!t          d| j        j        d                   }nt          d| j        j                  }|                    d|           |S )N   z__bases__[0] =r   z__bases__ =)r	   r6   lenr   	__bases__r0   insert)r   r4   r5   s      r   r6   zClassTreeItem.GetSubList@   s}     ++D11t{$%%**&'7%a(* *DD '}dk6KLLDq$r   N)r7   r8   r9   r   r6   r:   r   r   r<   r<   =   s2              r   r<   c                       e Zd Zd ZdS )AtomicObjectTreeItemc                     dS )NFr:   r   s    r   r   z!AtomicObjectTreeItem.IsExpandableK   s    ur   N)r7   r8   r9   r   r:   r   r   rD   rD   J   s#            r   rD   c                        e Zd Zd Zd Zd ZdS )SequenceTreeItemc                 2    t          | j                  dk    S )Nr   )r@   r   r   s    r   r   zSequenceTreeItem.IsExpandableO   s    4;!##r   c                 D    t          t          | j                            S r   )ranger@   r   r   s    r   r3   zSequenceTreeItem.keysQ   s    S%%&&&r   c                     g }|                                  D ]U}	 | j        |         }n# t          $ r Y w xY w|| j        fd}t          |d||          }|                    |           V|S )Nc                     | ||<   d S r   r:   r+   s      r   r   z0SequenceTreeItem.GetSubList.<locals>.setfunctionZ   s    $r   :)r3   r   KeyErrorr0   r2   )r   r4   r,   r$   r   r5   s         r   r6   zSequenceTreeItem.GetSubListS   s    99;; 	! 	!CC(   '*DK % % % %&#{{{E;GGDNN4    s   (
55N)r7   r8   r9   r   r3   r6   r:   r   r   rG   rG   N   sA        $ $ $' ' '    r   rG   c                       e Zd Zd ZdS )DictTreeItemc                 h    t          | j                  }	 |                                 n#  Y nxY w|S r   )listr   sort)r   r3   s     r   r3   zDictTreeItem.keysa   s8    DK  	IIKKKK	Ds   + /N)r7   r8   r9   r3   r:   r   r   rP   rP   `   s#            r   rP   Nc                 v    t          |          }|t          v rt          |         }nt          } || ||          S r   )typedispatchr	   )r   r   r   tcs        r   r0   r0   t   s:    WAH}}QK1Y---r   c                 L   dd l }ddlm}  ||           }|                    d           t	          t
          |                                                     d          dd                    \  }}|                    d|dz   |dz   fz             |                    dd	
           |	                                 t          |ddd          }|j                            dd           t          d|          }t          |j        d |          }|                                 d S )Nr   )ToplevelzTest debug object browser+r?   z+%d+%dr      yellow)bdbgwhite)r_   highlightthickness	takefocusboth)expandfillsys)rf   tkinterrZ   titlemapintgeometrysplit	configure	focus_setr   framepackr0   r   canvasupdate)	parentrf   rZ   topxyscr5   nodes	            r   _debug_object_browserry   }   s   JJJ      
(6

CII)***sFOO%%++C00455DAqLLQWa#g..///MMQ8M$$$MMOOO	A	K	K	KBHMMM(((uc**DBItT**DKKMMMMMr   __main__)mainzidlelib.idle_test.test_debugobj   F)	verbosityexit)runr   )__doc__reprlibr   idlelib.treer   r   r   r   	maxstringmaxotherr	   r<   rD   rG   rP   rj   floatr1   tuplerR   dictrU   rV   r0   ry   r7   unittestr{   idlelib.idle_test.htestr   r:   r   r   <module>r      s          ; ; ; ; ; ; ; ; ; ;	 & & & & &X & & &P    N       >       ~   $    #    				
,-. . . .    zD	*aeDDDD++++++C r   