o =?hf@sddlZddlZddlZddlZddlmZmZddlm Z m Z m Z dddZ Gddde Z Gdd d e ZGd d d eZd d Zedkr`ddlmZeddddddlmZeedSdS)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvascCsT|dur t|}t|dddatjjdddt||attj dta t dS)NZwhiter)ZbgZhighlightthicknessZboth)expandZfill) tkToplevelrZscframeZpack StackTreeItemitemrZcanvasZnoder)rootflisttbtopr:/opt/alt/python310/lib64/python3.10/idlelib/stackviewer.py StackBrowser s   rc@s6eZdZd ddZddZddZdd Zd d ZdS) r NcCs ||_|||_||_dSN)r get_stackstack get_exceptiontext)selfrrrrr__init__s zStackTreeItem.__init__cCsR|durtj}g}|r|jdur|j}|dur'||j|jf|j}|dus|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_exceptioncC|jSr)rrrrrGetText1zStackTreeItem.GetTextcCs*g}|jD] }t||j}||q|Sr)r FrameTreeItemrr )rsublistinfor rrr GetSubList4s    zStackTreeItem.GetSubList)NN)r" __module__ __qualname__rrrr,r1rrrrr s    r c@,eZdZddZddZddZddZd S) r.cCs||_||_dSr)r0r)rr0rrrrr>s zFrameTreeItem.__init__c Csz|j\}}z|jd}Wnd}Y|j}|j}|j}t||}|}|dvr3d|||f}|Sd||||f}|S)Nr"?)r5Nz%s, line %d: %sz%s.%s(...), line %d: %s)r0 f_globalsf_code co_filenameco_name linecachegetlinestrip) rr linenomodnamecodefilenamefuncnameZ sourceliner rrrr,Bs"  zFrameTreeItem.GetTextcCsR|j\}}g}|j|jurtd|j|j}||td|j|j}|||S)Nzz )r0r7f_localsVariablesTreeItemrr )rr r>r/r rrrr1Ts    zFrameTreeItem.GetSubListcCs>|jr|j\}}|jj}tj|r|j||dSdSdSr)rr0r8r9ospathisfileZ gotofileline)rr r>rArrr OnDoubleClick^s  zFrameTreeItem.OnDoubleClickN)r"r2r3rr,r1rHrrrrr.<s  r.c@r4) rDcCr*r)Z labeltextr+rrrr,hr-zVariablesTreeItem.GetTextcCsdSrrr+rrr GetLabelTextkszVariablesTreeItem.GetLabelTextcCst|jdkS)Nr)lenobjectr+rrr IsExpandablenszVariablesTreeItem.IsExpandablec Csdg}|jD](}z|j|}Wn tyYqw||jfdd}t|d||}||q|S)NcSs |||<dSrr)r(keyrKrrr setfunctionxs z1VariablesTreeItem.GetSubList..setfunctionz =)rKkeysKeyErrorrr )rr/rMr(rNr rrrr1qs  zVariablesTreeItem.GetSubListN)r"r2r3r,rIrLr1rrrrrDfs  rDc Csddlm}t|}|dtt|ddd\}}|d|d|df||}zt Wnt yEt \}}}Ynw|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$rr) parentrQrxyrexc_type exc_valueZexc_tbrrr _stack_viewers$     r`__main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NNN)r;rErZtkinterr Zidlelib.debugobjrrZ idlelib.treerrrrr r.rDr`r"ZunittestrbZidlelib.idle_test.htestrfrrrrs"  '*