£Á°è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>

]J                 @   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)	NbgZwhiteZhighlightthicknessr   expand   fillZboth)	tkZToplevelr   framepackStackTreeItemr   Zcanvasr	   )rootflisttbtopZscitemZnode r   0/opt/alt/python35/lib64/python3.5/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,   r0   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)r3   r4   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/   r5   f_localsVariablesTreeItemr   r"   )r   r   r<   r.   r   r   r   r   r0   R   s    zFrameTreeItem.GetSubListc             C   sM   |  j  rI |  j \ } } | j j } t j j |  rI |  j  j | |  d  S)N)r   r/   r6   r7   ospathisfileZgotofileline)r   r   r<   r?   r   r   r   OnDoubleClick\   s
    	zFrameTreeItem.OnDoubleClickN)r$   r1   r2   r   r,   r0   rF   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)rB   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*   keyrI   r   r   r   setfunctionu   s    z1VariablesTreeItem.GetSubList.<locals>.setfunctionz =)rI   keysKeyErrorr   r"   )r   r.   rK   r*   rL   r   r   r   r   r0   n   s    zVariablesTreeItem.GetSubListc             C   s   t  |  j j    S)N)listrI   rM   )r   r   r   r   rM   {   s    zVariablesTreeItem.keysN)r$   r1   r2   r,   rG   rJ   r0   rM   r   r   r   r   rB   c   s
   rB   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titlerO   mapintresplitZgeometryr   Zintentional_name_error	NameErrorr   exc_infor%   r&   r   r   )
parentr   widthZheightxyr   exc_type	exc_valueexc_tbr   r   r   _stack_viewer~   s     3			r_   __main__)run)rC   r   r9   rT   tkinterr   Zidlelib.TreeWidgetr   r   r   Zidlelib.ObjectBrowserr   r   Zidlelib.PyShellr   r   r   r-   rB   r_   r$   Zidlelib.idle_test.htestra   r   r   r   r   <module>   s   	&)