3  ff@sddlZddlZddlZddlZddlmZmZddlm Z m Z m Z dddZ Gddde Z Gdd d e ZGd d d eZd d ZedkrddlmZeddddddlmZeedS)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvascCsT|dkrtj|}t|dddatjjdddt||attj dta t j dS)NZwhiter)ZbgZhighlightthicknessZboth)expandZfill) tkToplevelrZscframeZpack StackTreeItemitemrZcanvasZnoder)rootflisttbtopr8/opt/alt/python36/lib64/python3.6/idlelib/stackviewer.py StackBrowser s  rc@s6eZdZd ddZddZddZdd Zd d ZdS) r NcCs ||_|j||_|j|_dS)N)r get_stackstack get_exceptiontext)selfrrrrr__init__s zStackTreeItem.__init__cCsP|dkrtj}g}|r&|jdkr&|j}x$|dk rJ|j|j|jf|j}q(W|S)N)syslast_tracebacktb_frametb_nextappend tb_lineno)rrrrrrrs  zStackTreeItem.get_stackcCs@tj}tj}t|dr|j}t|}|dk r<|dt|}|S)N__name__z: )r last_type last_valuehasattrr!str)rtypevaluesrrrr's zStackTreeItem.get_exceptioncCs|jS)N)r)rrrrGetText1szStackTreeItem.GetTextcCs.g}x$|jD]}t||j}|j|q W|S)N)r FrameTreeItemrr)rsublistinfor rrr GetSubList4s   zStackTreeItem.GetSubList)NN)r! __module__ __qualname__rrrr)r-rrrrr s    r c@s,eZdZddZddZddZddZd S) r*cCs||_||_dS)N)r,r)rr,rrrrr>szFrameTreeItem.__init__c Cs||j\}}y|jd}Wnd}YnX|j}|j}|j}tj||}|j}|dkrhd|||f}nd||||f}|S)Nr!?z%s, line %d: %sz%s.%s(...), line %d: %s)r0r1N)r, f_globalsf_code co_filenameco_name linecachegetlinestrip) rr linenomodnamecodefilenamefuncnameZ sourceliner rrrr)Bs    zFrameTreeItem.GetTextcCsR|j\}}g}|j|jk r4td|j|j}|j|td|j|j}|j||S)Nzz )r,r2f_localsVariablesTreeItemrr)rr r9r+r rrrr-Ts    zFrameTreeItem.GetSubListcCs6|jr2|j\}}|jj}tjj|r2|jj||dS)N)rr,r3r4ospathisfileZ gotofileline)rr r9r<rrr OnDoubleClick^s   zFrameTreeItem.OnDoubleClickN)r!r.r/rr)r-rCrrrrr*<s r*c@s,eZdZddZddZddZddZd S) r?cCs|jS)N)Z labeltext)rrrrr)hszVariablesTreeItem.GetTextcCsdS)Nr)rrrr GetLabelTextkszVariablesTreeItem.GetLabelTextcCst|jdkS)Nr)lenobject)rrrr IsExpandablenszVariablesTreeItem.IsExpandablec Cslg}xb|jjD]T}y|j|}Wntk r8wYnX||jfdd}t|d||}|j|qW|S)NcSs |||<dS)Nr)r'keyrFrrr setfunctionxsz1VariablesTreeItem.GetSubList..setfunctionz =)rFkeysKeyErrorrr)rr+rHr'rIr rrrr-qszVariablesTreeItem.GetSubListN)r!r.r/r)rDrGr-rrrrr?fsr?c Csddlm}tj|}|jdtt|jjddd\}}|jd|d|df||}yt Wn"t k rt j \}}}YnX|t _ |t _|t _t||||d t ` t `t `dS) Nr)PyShellFileListzTest StackViewer+rz+%d+%d2)rrr)Zidlelib.pyshellrLr r titlemapintZgeometrysplitZintentional_name_error NameErrorrexc_infor"r#rr) parentrLrxyrexc_type exc_valueZexc_tbrrr _stack_viewers"    r[__main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NNN)r6r@rZtkinterr Zidlelib.debugobjrrZ idlelib.treerrrrr r*r?r[r!Zunittestr]Zidlelib.idle_test.htestrarrrrs '*