a  zef@sddlZddlZddlZddlZddlmZmZddlm Z m Z m Z dddZ Gddde Z Gdd d e ZGd d d eZd d ZedkrddlmZeddddddlmZeedS)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvascCsT|durt|}t|dddatjjdddt||attj dta t dS)NZwhiter)bgZhighlightthicknessZboth)expandfill) tkToplevelrZscframepack StackTreeItemitemrZcanvasZnoder )rootflisttbtoprG/opt/bitninja-python-dojo/embedded/lib/python3.9/idlelib/stackviewer.py StackBrowser s  rc@s6eZdZd ddZddZddZdd Zd d ZdS) rNcCs ||_|||_||_dSN)r get_stackstack get_exceptiontext)selfrrrrr__init__s zStackTreeItem.__init__cCsL|durtj}g}|r&|jdur&|j}|durH||j|jf|j}q&|Sr)syslast_tracebacktb_frametb_nextappend tb_lineno)rrrrrrrszStackTreeItem.get_stackcCs@tj}tj}t|dr|j}t|}|dur<|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#)rsublistinforrrr GetSubList4s    zStackTreeItem.GetSubList)NN)r% __module__ __qualname__rrrr.r2rrrrrs    rc@s,eZdZddZddZddZddZd S) r/cCs||_||_dSr)r1r)rr1rrrrr>szFrameTreeItem.__init__c Cs||j\}}z|jd}Wnd}Yn0|j}|j}|j}t||}|}|dvrhd|||f}nd||||f}|S)Nr%?)r5Nz%s, line %d: %sz%s.%s(...), line %d: %s)r1 f_globalsf_code co_filenameco_name linecachegetlinestrip) rr linenomodnamecodefilenamefuncnameZ sourcelinerrrrr.Bs    zFrameTreeItem.GetTextcCsR|j\}}g}|j|jur4td|j|j}||td|j|j}|||S)Nzz )r1r7f_localsVariablesTreeItemrr#)rr r>r0rrrrr2Ts    zFrameTreeItem.GetSubListcCs6|jr2|j\}}|jj}tj|r2|j||dSr)rr1r8r9ospathisfileZ gotofileline)rr r>rArrr OnDoubleClick^s   zFrameTreeItem.OnDoubleClickN)r%r3r4rr.r2rHrrrrr/<s r/c@s,eZdZddZddZddZddZd S) rDcCs|jSr)Z labeltextr-rrrr.hszVariablesTreeItem.GetTextcCsdSrrr-rrr GetLabelTextkszVariablesTreeItem.GetLabelTextcCst|jdkS)Nr)lenobjectr-rrr IsExpandablenszVariablesTreeItem.IsExpandablec Cshg}|jD]T}z|j|}Wnty6YqYn0||jfdd}t|d||}||q|S)NcSs |||<dSrr)r+keyrKrrr setfunctionxsz1VariablesTreeItem.GetSubList..setfunctionz =)rKkeysKeyErrorrr#)rr0rMr+rNrrrrr2qs   zVariablesTreeItem.GetSubListN)r%r3r4r.rIrLr2rrrrrDfsrDc Csddlm}t|}|dtt|ddd\}}|d|d|df||}zt Wn t yt \}}}Yn0|t _ |t _|t _t||||d t ` t `t `dS) Nr)PyShellFileListzTest StackViewer+rz+%d+%d2)rrr)Zidlelib.pyshellrQr r titlemapintZgeometrysplitZintentional_name_error NameErrorrexc_infor&r'r r) parentrQrxyrexc_type exc_valueexc_tbrrr _stack_viewers"     ra__main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NNN)r;rErtkinterr Zidlelib.debugobjrrZ idlelib.treerrrrrr/rDrar%ZunittestrcZidlelib.idle_test.htestrgrrrrs '*