<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~d                 @   s   d dl mZ d dlmZmZmZ e Zde_de_G dd deZ	G dd de	Z
G dd	 d	e	ZG d
d de	ZG dd deZeeeeeeeeeeeeee
iZdddZdd Zedkrd dlmZ edddd d dlmZ ee dS )    )Repr)TreeItemTreeNodeScrolledCanvasd   c               @   sN   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd Zdd Z	dd Z
dS )ObjectTreeItemNc             C   s   || _ || _|| _d S )N)	labeltextobjectsetfunction)selfr   r	   r
    r   5/opt/alt/python37/lib64/python3.7/idlelib/debugobj.py__init__   s    zObjectTreeItem.__init__c             C   s   | j S )N)r   )r   r   r   r   GetLabelText   s    zObjectTreeItem.GetLabelTextc             C   s   t | jS )N)myreprreprr	   )r   r   r   r   GetText   s    zObjectTreeItem.GetTextc             C   s   |   sdS d S )Npython)IsExpandable)r   r   r   r   GetIconName   s    zObjectTreeItem.GetIconNamec             C   s
   | j d k	S )N)r
   )r   r   r   r   
IsEditable   s    zObjectTreeItem.IsEditablec             C   s.   yt |}| | W n   Y nX || _d S )N)evalr
   r	   )r   textvaluer   r   r   SetText!   s    zObjectTreeItem.SetTextc             C   s   t | j  S )N)dirr	   )r   r   r   r   r   )   s    zObjectTreeItem.IsExpandablec          	   C   sr   t | j}g }x^|D ]V}yt| j|}W n tk
r>   wY nX tt|d ||| jfdd}|| qW |S )Nz =c             S   s   t ||| S )N)setattr)r   keyr	   r   r   r   <lambda>6   s    z+ObjectTreeItem.GetSubList.<locals>.<lambda>)r   r	   getattrAttributeErrormake_objecttreeitemstrappend)r   keyssublistr   r   itemr   r   r   
GetSubList+   s    


zObjectTreeItem.GetSubList)N)__name__
__module____qualname__r   r   r   r   r   r   r   r'   r   r   r   r   r      s   
r   c               @   s   e Zd Zdd Zdd ZdS )ClassTreeItemc             C   s   dS )NTr   )r   r   r   r   r   <   s    zClassTreeItem.IsExpandablec             C   sL   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   r'   lenr	   	__bases__r!   insert)r   r%   r&   r   r   r   r'   >   s    
zClassTreeItem.GetSubListN)r(   r)   r*   r   r'   r   r   r   r   r+   ;   s   r+   c               @   s   e Zd Zdd ZdS )AtomicObjectTreeItemc             C   s   dS )NFr   )r   r   r   r   r   I   s    z!AtomicObjectTreeItem.IsExpandableN)r(   r)   r*   r   r   r   r   r   r0   H   s   r0   c               @   s$   e Zd Zdd Zdd Zdd ZdS )SequenceTreeItemc             C   s   t | jdkS )Nr   )r-   r	   )r   r   r   r   r   M   s    zSequenceTreeItem.IsExpandablec             C   s   t t| jS )N)ranger-   r	   )r   r   r   r   r$   O   s    zSequenceTreeItem.keysc          	   C   sl   g }xb|   D ]V}y| j| }W n tk
r6   wY nX || jfdd}td|f ||}|| qW |S )Nc             S   s   | ||< d S )Nr   )r   r   r	   r   r   r   r
   X   s    z0SequenceTreeItem.GetSubList.<locals>.setfunctionz%r:)r$   r	   KeyErrorr!   r#   )r   r%   r   r   r
   r&   r   r   r   r'   Q   s    zSequenceTreeItem.GetSubListN)r(   r)   r*   r   r$   r'   r   r   r   r   r1   L   s   r1   c               @   s   e Zd Zdd ZdS )DictTreeItemc             C   s,   t | j }y|  W n   Y nX |S )N)listr	   r$   sort)r   r$   r   r   r   r$   _   s    zDictTreeItem.keysN)r(   r)   r*   r$   r   r   r   r   r4   ^   s   r4   Nc             C   s*   t |}|tkrt| }nt}|| ||S )N)typedispatchr   )r   r	   r
   tcr   r   r   r!   q   s
    
r!   c       	      C   s   dd l }ddlm} || }|d tt|  ddd  \}}|d|d |d f  |jdd	d
 |	  t
|dddd}|jjddd td|}t|jd |}|  d S )Nr   )ToplevelzTest debug object browser+r,   z+%d+%dr      Zyellow)ZbdbgZwhite)r>   ZhighlightthicknessZ	takefocusZboth)expandfillsys)rA   Ztkinterr;   titlemapintZgeometrysplitZ	configureZ	focus_setr   framepackr!   r   Zcanvasupdate)	parentrA   r;   topxyZscr&   Znoder   r   r   _object_browserz   s    
 
rM   __main__)mainzidlelib.idle_test.test_debugobj   F)	verbosityexit)run)N)reprlibr   Zidlelib.treer   r   r   r   	maxstringmaxotherr   r+   r0   r1   r4   rD   floatr"   tupler5   dictr7   r8   r!   rM   r(   ZunittestrO   Zidlelib.idle_test.htestrS   r   r   r   r   <module>   s.   (

	