U .cf@sddlZddlZddlZddlZddlmZmZddlm Z m Z m Z dddZ Gddde Z Gdd d e ZGd d d eZd d ZedkrddlmZeddddddlmZeedS)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvascCsT|dkrt|}t|dddatjjdddt||attj dta t dS)NZwhiter)ZbgZhighlightthicknessZboth)expandZfill) tkToplevelrZscframeZpack StackTreeItemitemrZcanvasZnoder)rootflisttbtopr8/opt/alt/python38/lib64/python3.8/idlelib/stackviewer.py StackBrowser s  rc@s6eZdZd ddZddZddZdd Zd d ZdS) r NcCs ||_|||_||_dSN)r get_stackstack get_exceptiontext)selfrrrrr__init__s zStackTreeItem.__init__cCsL|dkrtj}g}|r&|jdkr&|j}|dk rH||j|jf|j}q&|Sr)syslast_tracebacktb_frametb_nextappend tb_lineno)rrrrrrrszStackTreeItem.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|jSr)rrrrrGetText1szStackTreeItem.GetTextcCs*g}|jD]}t||j}||q |Sr)r FrameTreeItemrr )rsublistinfor rrr GetSubList4s    zStackTreeItem.GetSubList)NN)r" __module__ __qualname__rrrr+r/rrrrr s    r c@s,eZdZddZddZddZddZd S) r,cCs||_||_dSr)r.r)rr.rrrrr>szFrameTreeItem.__init__c Cs||j\}}z|jd}Wnd}YnX|j}|j}|j}t||}|}|dkrhd|||f}nd||||f}|S)Nr"?)r2Nz%s, line %d: %sz%s.%s(...), line %d: %s)r. f_globalsf_code co_filenameco_name linecachegetlinestrip) rr linenomodnamecodefilenamefuncnameZ sourceliner rrrr+Bs"   zFrameTreeItem.GetTextcCsR|j\}}g}|j|jk r4td|j|j}||td|j|j}|||S)Nzz )r.r4f_localsVariablesTreeItemrr )rr r;r-r rrrr/Ts    zFrameTreeItem.GetSubListcCs6|jr2|j\}}|jj}tj|r2|j||dSr)rr.r5r6ospathisfileZ gotofileline)rr r;r>rrr OnDoubleClick^s   zFrameTreeItem.OnDoubleClickN)r"r0r1rr+r/rErrrrr,<s r,c@s,eZdZddZddZddZddZd S) rAcCs|jSr)Z labeltextr*rrrr+hszVariablesTreeItem.GetTextcCsdSrrr*rrr GetLabelTextkszVariablesTreeItem.GetLabelTextcCst|jdkS)Nr)lenobjectr*rrr IsExpandablenszVariablesTreeItem.IsExpandablec Csjg}|jD]V}z|j|}Wntk r8YqYnX||jfdd}t|d||}||q|S)NcSs |||<dSrr)r(keyrHrrr setfunctionxsz1VariablesTreeItem.GetSubList..setfunctionz =)rHkeysKeyErrorrr )rr-rJr(rKr rrrr/qs  zVariablesTreeItem.GetSubListN)r"r0r1r+rFrIr/rrrrrAfsrAc Csddlm}t|}|dtt|ddd\}}|d|d|df||}zt Wn"t k rt \}}}YnX|t _ |t _|t _t||||d t ` t `t `dS) Nr)PyShellFileListzTest StackViewer+rz+%d+%d2)rrr)Zidlelib.pyshellrNr r titlemapintZgeometrysplitZintentional_name_error NameErrorrexc_infor#r$rr) parentrNrxyrexc_type exc_valueZexc_tbrrr _stack_viewers"    r]__main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NNN)r8rBrZtkinterr Zidlelib.debugobjrrZ idlelib.treerrrrr r,rAr]r"Zunittestr_Zidlelib.idle_test.htestrcrrrrs '*