й¼]Jã@s ddlZddlZddlZddlZddlZddlmZmZm Z ddl m Z m Z ddl mZddddd„ZGdd„deƒZGd d „d eƒZGd d „d e ƒZd d„ZedkrddlmZeeƒdS)éN)ÚTreeNodeÚTreeItemÚScrolledCanvas)ÚObjectTreeItemÚmake_objecttreeitem)ÚPyShellFileListcCs~|dkrtj|ƒ}t|ddddƒ}|jjddddƒt||ƒ}t|jd|ƒ}|jƒdS) NÚbgZwhiteZhighlightthicknessrÚexpandéÚfillZboth) ÚtkZToplevelrÚframeÚpackÚ StackTreeItemrZcanvasr )ÚrootÚflistÚtbÚtopZscÚitemZnode©rú0/opt/alt/python35/lib64/python3.5/StackViewer.pyÚ StackBrowser s rc@sReZdZdddd„Zdd„Zdd„Zdd „Zd d „ZdS) rNcCs.||_|j|ƒ|_|jƒ|_dS)N)rÚ get_stackÚstackÚ get_exceptionÚtext)ÚselfrrrrrÚ__init__s zStackTreeItem.__init__cCsr|dkrtj}g}|r9|jdkr9|j}x2|dk rm|j|j|jfƒ|j}q<W|S)N)ÚsysÚlast_tracebackÚtb_frameÚtb_nextÚappendÚ tb_lineno)rrrrrrrs    zStackTreeItem.get_stackcCsZtj}tj}t|dƒr*|j}t|ƒ}|dk rV|dt|ƒ}|S)NÚ__name__z: )rÚ last_typeÚ last_valueÚhasattrr$Ústr)rÚtypeÚvalueÚsrrrr&s     zStackTreeItem.get_exceptioncCs|jS)N)r)rrrrÚGetText0szStackTreeItem.GetTextcCs=g}x0|jD]%}t||jƒ}|j|ƒqW|S)N)rÚ FrameTreeItemrr")rÚsublistÚinforrrrÚ GetSubList3s zStackTreeItem.GetSubList)r$Ú __module__Ú __qualname__rrrr,r0rrrrrs  rc@s@eZdZdd„Zdd„Zdd„Zdd„Zd S) r-cCs||_||_dS)N)r/r)rr/rrrrr<s zFrameTreeItem.__init__c Cs¦|j\}}y|jd}Wnd}YnX|j}|j}|j}tj||ƒ}|jƒ}|dkrŒd|||f}nd||||f}|S)Nr$ú?Úz%s, line %d: %sz%s.%s(...), line %d: %s)r3r4N)r/Ú f_globalsÚf_codeÚ co_filenameÚco_nameÚ linecacheÚgetlineÚstrip) rr ÚlinenoÚmodnameÚcodeÚfilenameÚfuncnameZ sourcelinerrrrr,@s        zFrameTreeItem.GetTextcCsu|j\}}g}|j|jk rLtd|j|jƒ}|j|ƒtd|j|jƒ}|j|ƒ|S)Nzz )r/r5Úf_localsÚVariablesTreeItemrr")rr r<r.rrrrr0Rs  zFrameTreeItem.GetSubListcCsM|jrI|j\}}|jj}tjj|ƒrI|jj||ƒdS)N)rr/r6r7ÚosÚpathÚisfileZ gotofileline)rr r<r?rrrÚ OnDoubleClick\s   zFrameTreeItem.OnDoubleClickN)r$r1r2rr,r0rFrrrrr-:s    r-c@sLeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) rBcCs|jS)N)Z labeltext)rrrrr,eszVariablesTreeItem.GetTextcCsdS)Nr)rrrrÚ GetLabelTexthszVariablesTreeItem.GetLabelTextcCst|jƒdkS)Nr)ÚlenÚobject)rrrrÚ IsExpandablekszVariablesTreeItem.IsExpandablec Cs…g}xx|jjƒD]g}y|j|}Wntk rDwYnX||jdd„}t|d||ƒ}|j|ƒqW|S)NcSs|||.setfunctionz =)rIÚkeysÚKeyErrorrr")rr.rKr*rLrrrrr0ns zVariablesTreeItem.GetSubListcCst|jjƒƒS)N)ÚlistrIrM)rrrrrM{szVariablesTreeItem.keysN)r$r1r2r,rGrJr0rMrrrrrBcs     rBc Csòtjƒ}|jdƒttttjd|jƒƒƒƒ\}}}}|jd||dfƒt |ƒ}yt Wn't k r¤t j ƒ\}}} YnX|t _|t _| t _t|d|d|d| ƒt `t `t `dS)NzTest StackViewerz[x+]z+%d+%dé–rrr)r ZTkÚtitlerOÚmapÚintÚreÚsplitZgeometryrZintentional_name_errorÚ NameErrorrÚexc_infor%r&rr) ÚparentrÚwidthZheightÚxÚyrÚexc_typeÚ exc_valueÚexc_tbrrrÚ _stack_viewer~s   3     r_Ú__main__)Úrun)rCrr9rTÚtkinterr Zidlelib.TreeWidgetrrrZidlelib.ObjectBrowserrrZidlelib.PyShellrrrr-rBr_r$Zidlelib.idle_test.htestrarrrrÚs      &)