B „ ffã@sÀddlZddlZddlZddlZddlmZmZddlm Z m Z m Z ddd„Z Gdd„de ƒZ Gdd „d e ƒZGd d „d eƒZd d „Zedkr¼ddlmZedddd�ddlmZeeƒdS)éN)ÚObjectTreeItemÚmake_objecttreeitem)ÚTreeNodeÚTreeItemÚScrolledCanvascCsT|dkrt |¡}t|ddd�atjjddd�t||ƒattj dtƒa t   ¡dS)NZwhiter)ZbgZhighlightthicknesséZboth)ÚexpandZfill) ÚtkÚToplevelrZscÚframeZpackÚ StackTreeItemÚitemrZcanvasZnoder)ÚrootÚflistÚtbÚtop©rú8/opt/alt/python37/lib64/python3.7/idlelib/stackviewer.pyÚ StackBrowser s  rc@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) r NcCs ||_| |¡|_| ¡|_dS)N)rÚ get_stackÚstackÚ get_exceptionÚtext)ÚselfrrrrrÚ__init__s zStackTreeItem.__init__cCsP|dkrtj}g}|r&|jdkr&|j}x$|dk rJ| |j|jf¡|j}q(W|S)N)ÚsysÚlast_tracebackÚtb_frameÚtb_nextÚappendÚ tb_lineno)rrrrrrrs  zStackTreeItem.get_stackcCs@tj}tj}t|dƒr|j}t|ƒ}|dk r<|dt|ƒ}|S)NÚ__name__z: )rÚ last_typeÚ last_valueÚhasattrr!Ústr)rÚtypeÚvalueÚsrrrr's zStackTreeItem.get_exceptioncCs|jS)N)r)rrrrÚGetText1szStackTreeItem.GetTextcCs.g}x$|jD]}t||jƒ}| |¡q W|S)N)rÚ FrameTreeItemrr)rÚsublistÚinfor rrrÚ GetSubList4s   zStackTreeItem.GetSubList)NN)r!Ú __module__Ú __qualname__rrrr)r-rrrrr s    r c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) r*cCs||_||_dS)N)r,r)rr,rrrrr>szFrameTreeItem.__init__c Cs||j\}}y|jd}Wnd}YnX|j}|j}|j}t ||¡}| ¡}|dkrhd|||f}nd||||f}|S)Nr!ú?)r0ÚNz%s, line %d: %sz%s.%s(...), line %d: %s)r,Ú f_globalsÚf_codeÚ co_filenameÚco_nameÚ linecacheÚgetlineÚstrip) rr ÚlinenoÚmodnameÚcodeÚfilenameÚfuncnameZ sourceliner rrrr)Bs    zFrameTreeItem.GetTextcCsR|j\}}g}|j|jk r4td|j|jƒ}| |¡td|j|jƒ}| |¡|S)Nzz )r,r2Úf_localsÚVariablesTreeItemrr)rr r9r+r rrrr-Ts    zFrameTreeItem.GetSubListcCs6|jr2|j\}}|jj}tj |¡r2|j ||¡dS)N)rr,r3r4ÚosÚpathÚisfileZ gotofileline)rr r9r<rrrÚ OnDoubleClick^s   zFrameTreeItem.OnDoubleClickN)r!r.r/rr)r-rCrrrrr*<s r*c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) r?cCs|jS)N)Z labeltext)rrrrr)hszVariablesTreeItem.GetTextcCsdS)Nr)rrrrÚ GetLabelTextkszVariablesTreeItem.GetLabelTextcCst|jƒdkS)Nr)ÚlenÚobject)rrrrÚ IsExpandablenszVariablesTreeItem.IsExpandablec Cslg}xb|j ¡D]T}y|j|}Wntk r8wYnX||jfdd„}t|d||ƒ}| |¡qW|S)NcSs |||<dS)Nr)r'ÚkeyrFrrrÚ setfunctionxsz1VariablesTreeItem.GetSubList..setfunctionz =)rFÚkeysÚKeyErrorrr)rr+rHr'rIr rrrr-qszVariablesTreeItem.GetSubListN)r!r.r/r)rDrGr-rrrrr?fsr?c CsÀddlm}t |¡}| d¡tt| ¡ d¡dd…ƒ\}}| d|d|df¡||ƒ}yt Wn"t k rŒt   ¡\}}}YnX|t _ |t _|t _t||||d �t ` t `t `dS) Nr)ÚPyShellFileListzTest StackViewerú+rz+%d+%dé2é¯)rrr)Zidlelib.pyshellrLr r ÚtitleÚmapÚintZgeometryÚsplitZintentional_name_errorÚ NameErrorrÚexc_infor"r#rr) ÚparentrLrÚxÚyrÚexc_typeÚ exc_valueZexc_tbrrrÚ _stack_viewers"    r[Ú__main__)Úmainz"idlelib.idle_test.test_stackvieweréF)Ú verbosityÚexit)Úrun)NNN)r6r@rZtkinterr Zidlelib.debugobjrrZ idlelib.treerrrrr r*r?r[r!Zunittestr]Zidlelib.idle_test.htestrarrrrÚs '*