\dfddlZddlZddlZddlZddlmZmZddlm Z m Z m Z ddZ Gdde Z Gdde ZGd d eZd Zed kr'dd lmZedddddlmZeedSdS)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvasc*|tj|}t|ddatjddt ||attj dta t dS)Nwhiter)bghighlightthicknessboth)expandfill) tkToplevelrscframepack StackTreeItemitemrcanvasnoder)rootflisttbtops $..\python\lib\idlelib\stackviewer.py StackBrowserr su {k$ A > > >BHMMM(((  # #D BItT * *DKKMMMMMc.eZdZddZdZdZdZdZdS)rNcz||_|||_||_dSN)r get_stackstack get_exceptiontext)selfrrs r__init__zStackTreeItem.__init__s3 ^^B'' &&(( rc| tj}g}|r|j|j}|*||j|jf|j}|*|Sr")syslast_tracebacktb_frametb_nextappend tb_lineno)r'rr$s rr#zStackTreeItem.get_stacks_ :#B  "+%Bn LL"+r|4 5 5 5Bn rctj}tj}t|dr|j}t |}||dzt |z}|S)N__name__z: )r* last_type last_valuehasattrr1str)r'typevaluess rr%zStackTreeItem.get_exception'sS} 4 $ $ !=D II  D3u::%Arc|jSr")r&r's rGetTextzStackTreeItem.GetText1s yrcrg}|jD],}t||j}||-|Sr")r$ FrameTreeItemrr.)r'sublistinfors r GetSubListzStackTreeItem.GetSubList4sCJ ! !D tz22D NN4 r)NN)r1 __module__ __qualname__r(r#r%r;r@rrrrsd))))   rrc&eZdZdZdZdZdZdS)r=c"||_||_dSr")r?r)r'r?rs rr(zFrameTreeItem.__init__>s  rc|j\}} |jd}n #d}YnxYw|j}|j}|j}t j||}|}|dvr d|||fz}n d||||fz}|S)Nr1?)rGNz%s, line %d: %sz%s.%s(...), line %d: %s)r? f_globalsf_code co_filenameco_name linecachegetlinestrip) r'rlinenomodnamecodefilenamefuncname sourceliners rr;zFrameTreeItem.GetTextBs v oj1GG GGG|#<&x88 %%''  & &$'DDDD,-3Z0AAD s  c|j\}}g}|j|jur0td|j|j}||td|j|j}|||S)Nzz )r?rIf_localsVariablesTreeItemrr.)r'rrPr>rs rr@zFrameTreeItem.GetSubListTst v ?%. 0 0$ZLLD NN4  eotzJJtrc|jrR|j\}}|jj}tj|r|j||dSdSdSr")rr?rJrKospathisfile gotofileline)r'rrPrSs r OnDoubleClickzFrameTreeItem.OnDoubleClick^si : : IME6|/Hw~~h'' : ''&99999  : : : :rN)r1rArBr(r;r@r^rCrrr=r=<sP$:::::rr=c&eZdZdZdZdZdZdS)rXc|jSr") labeltextr:s rr;zVariablesTreeItem.GetTexths ~rcdSr"rCr:s r GetLabelTextzVariablesTreeItem.GetLabelTextkstrc2t|jdkS)Nr)lenobjectr:s r IsExpandablezVariablesTreeItem.IsExpandablens4;!##rcg}|jD]U} |j|}n#t$rYwxYw||jfd}t|dz||}||V|S)Nc|||<dSr"rC)r7keyrfs r setfunctionz1VariablesTreeItem.GetSubList..setfunctionxs#s rz =)rfkeysKeyErrorrr.)r'r>rjr7rkrs rr@zVariablesTreeItem.GetSubListqs;##%% ! !C  C(    '*4; $ $ $ $&sTz5+FFD NN4 s - ::N)r1rArBr;rcrgr@rCrrrXrXfsP$$$     rrXc<ddlm}tj|}|dt t |ddd\}}|d|dz|dzfz||} tn'#t$rtj \}}}YnwxYw|t_ |t_|t_t!|||| t` t`t`dS) Nr)PyShellFileListzTest StackViewer+r z+%d+%d2)rrr)idlelib.pyshellrorrtitlemapintgeometrysplitintentional_name_error NameErrorr*exc_infor2r3r+r) parentrorxyrexc_type exc_valueexc_tbs r _stack_viewerrs#////// +f  CII !!! sFOO%%++C004 5 5DAqLLQVQW--... OC E5 555&)lnn#)VVV5CMCNCEsv6666   s!B))!C  C __main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NNN)rMrZr*tkinterridlelib.debugobjrr idlelib.treerrrrrr=rXrr1unittestridlelib.idle_test.htestrrCrrrso @@@@@@@@;;;;;;;;;;$$$$$H$$$N':':':':':H':':':T2. zD -GGGG++++++C  r