<!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>

f fJ                 @   s  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l m Z m Z m	 Z	 d  d l
 m Z m Z d  d l m Z d d d d d  Z Gd d   d e  Z Gd	 d
   d
 e  Z Gd d   d e  Z d d   Z e d k r
d  d l m Z e e  n  d S)    N)TreeNodeTreeItemScrolledCanvas)ObjectTreeItemmake_objecttreeitem)PyShellFileListc             C   s   | d  k r t  j |   } n  t | d d d d } | j j d d d d  t | |  } t | j d  |  } | j   d  S)	NZbgZwhiteZhighlightthicknessr   expand   ZfillZboth)	tkZToplevelr   frameZpackStackTreeItemr   Zcanvasr   )rootflisttbtopZscitemZnode r   8/opt/alt/python34/lib64/python3.4/idlelib/StackViewer.pyStackBrowser   s    r   c               @   sR   e  Z d  Z d d d d  Z d d   Z d d   Z d d	   Z d
 d   Z d S)r   Nc             C   s.   | |  _  |  j |  |  _ |  j   |  _ d  S)N)r   	get_stackstackget_exceptiontext)selfr   r   r   r   r   __init__   s    	zStackTreeItem.__init__c             C   sx   | d  k r t  j } n  g  } | r? | j d  k r? | j } n  x2 | d  k	 rs | j | j | j f  | j } qB W| S)N)syslast_tracebacktb_frametb_nextappend	tb_lineno)r   r   r   r   r   r   r      s    zStackTreeItem.get_stackc             C   s`   t  j } t  j } t | d  r- | j } n  t |  } | d  k	 r\ | d t |  } n  | S)N__name__z: )r   	last_type
last_valuehasattrr!   str)r   typevaluesr   r   r   r   &   s    		zStackTreeItem.get_exceptionc             C   s   |  j  S)N)r   )r   r   r   r   GetText0   s    zStackTreeItem.GetTextc             C   s=   g  } x0 |  j  D]% } t | |  j  } | j |  q W| S)N)r   FrameTreeItemr   r   )r   sublistinfor   r   r   r   
GetSubList3   s
    zStackTreeItem.GetSubList)r!   
__module____qualname__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 d   Z d d   Z d	 S)
r*   c             C   s   | |  _  | |  _ d  S)N)r,   r   )r   r,   r   r   r   r   r   <   s    	zFrameTreeItem.__init__c       	      C   s   |  j  \ } } y | j d } Wn d } Yn X| j } | j } | j } t j | |  } | j   } | d k r d | | | f } n d | | | | f } | S)Nr!   ? z%s, line %d: %sz%s.%s(...), line %d: %s)r0   r1   N)r,   	f_globalsf_codeco_filenameco_name	linecachegetlinestrip)	r   r   linenomodnamecodefilenameZfuncnameZ
sourceliner   r   r   r   r)   @   s    				zFrameTreeItem.GetTextc             C   sx   |  j  \ } } g  } | j | j k	 rO t d | j |  j  } | j |  n  t d | j |  j  } | j |  | S)Nz<locals>z	<globals>)r,   r2   f_localsVariablesTreeItemr   r   )r   r   r9   r+   r   r   r   r   r-   R   s    zFrameTreeItem.GetSubListc             C   sS   |  j  rO |  j \ } } | j j } t j j |  rO |  j  j | |  qO n  d  S)N)r   r,   r3   r4   ospathisfileZgotofileline)r   r   r9   r<   r   r   r   OnDoubleClick\   s
    	zFrameTreeItem.OnDoubleClickN)r!   r.   r/   r   r)   r-   rB   r   r   r   r   r*   :   s   
r*   c               @   sL   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S)r>   c             C   s   |  j  S)N)Z	labeltext)r   r   r   r   r)   e   s    zVariablesTreeItem.GetTextc             C   s   d  S)Nr   )r   r   r   r   GetLabelTexth   s    zVariablesTreeItem.GetLabelTextc             C   s   t  |  j  d k S)Nr   )lenobject)r   r   r   r   IsExpandablek   s    zVariablesTreeItem.IsExpandablec             C   s   g  } xx |  j  j   D]g } y |  j  | } Wn t k
 rD w Yn X| |  j  d d  } t | d | |  } | j |  q W| S)Nc             S   s   |  | | <d  S)Nr   )r'   keyrE   r   r   r   setfunctionu   s    z1VariablesTreeItem.GetSubList.<locals>.setfunctionz =)rE   keysKeyErrorr   r   )r   r+   rG   r'   rH   r   r   r   r   r-   n   s    zVariablesTreeItem.GetSubListc             C   s   t  |  j j    S)N)listrE   rI   )r   r   r   r   rI   {   s    zVariablesTreeItem.keysN)r!   r.   r/   r)   rC   rF   r-   rI   r   r   r   r   r>   c   s
   r>   c       
      C   s   t  j   } | j d  t t t t j d |  j      \ } } } } | j d | | d f  t	 |  } y t
 Wn' t k
 r t j   \ } } }	 Yn X| t _ | t _ |	 t _ t | d | d | d |	 t ` t ` t ` d  S)NzTest StackViewerz[x+]z+%d+%d   r   r   r   )r
   ZTktitlerK   mapintresplitZgeometryr   Zintentional_name_error	NameErrorr   exc_infor"   r#   r   r   )
parentr   widthZheightxyr   exc_type	exc_valueZexc_tbr   r   r   _stack_viewer~   s     3			rZ   __main__)run)r?   r   r6   rP   Ztkinterr
   Zidlelib.TreeWidgetr   r   r   Zidlelib.ObjectBrowserr   r   Zidlelib.PyShellr   r   r   r*   r>   rZ   r!   Zidlelib.idle_test.htestr\   r   r   r   r   <module>   s   	&)