£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>

YfJ                 @   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  d S)    N)TreeNodeTreeItemScrolledCanvas)ObjectTreeItemmake_objecttreeitem)PyShellFileListc             C   s~   | d  k r t  j |   } 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/python35/lib64/python3.5/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   sr   | d  k r t  j } g  } | r9 | j d  k r9 | j } x2 | d  k	 rm | j | j | j f  | j } q< 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   sZ   t  j } t  j } t | d  r* | j } t |  } | d  k	 rV | d t |  } | 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filenamefuncnameZ
sourceliner   r   r   r   r)   @   s    				zFrameTreeItem.GetTextc             C   su   |  j  \ } } g  } | j | j k	 rL t d | j |  j  } | j |  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   sM   |  j  rI |  j \ } } | j j } t j j |  rI |  j  j | |  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-   rC   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'   keyrF   r   r   r   setfunctionu   s    z1VariablesTreeItem.GetSubList.<locals>.setfunctionz =)rF   keysKeyErrorr   r   )r   r+   rH   r'   rI   r   r   r   r   r-   n   s    zVariablesTreeItem.GetSubListc             C   s   t  |  j j    S)N)listrF   rJ   )r   r   r   r   rJ   {   s    zVariablesTreeItem.keysN)r!   r.   r/   r)   rD   rG   r-   rJ   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titlerL   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			r[   __main__)run)r@   r   r6   rQ   Ztkinterr
   Zidlelib.TreeWidgetr   r   r   Zidlelib.ObjectBrowserr   r   Zidlelib.PyShellr   r   r   r*   r?   r[   r!   Zidlelib.idle_test.htestr]   r   r   r   r   <module>   s   	&)