~ddlZddlZddlZddlmZmZddlmZm Z m Z ddZ Gdde Z Gdde Z Gd d eZd Zed k(r dd lmZedddddlmZeeyy)N)ObjectTreeItemmake_objecttreeitem)TreeNodeTreeItemScrolledCanvasc|tj|}t|ddatjj ddt ||attjdta tjy)Nwhiter)bghighlightthicknessboth)expandfill) tkToplevelrscframepack StackTreeItemitemrcanvasnoder)rootexcflisttops :/opt/alt/python312/lib64/python3.12/idlelib/stackviewer.py StackBrowserr s^ {kk$ A >BHHMMM( e $D BIItT *DKKMc&eZdZddZdZdZdZy)rNc||_|j|dn |j|_t |j dt ||_y)Nz: )r get_stack __traceback__stacktype__name__strtext)selfrrs r__init__zStackTreeItem.__init__sF ^^CKDS=N=NO Cy))*"SXJ7 rcg}|r|j |j}|6|j|j|jf|j}|6|SN)tb_frametb_nextappend tb_lineno)r)tbr$s rr"zStackTreeItem.get_stacksQ "++%Bn LL"++r||4 5Bn rc|jSr,)r(r)s rGetTextzStackTreeItem.GetText&s yyrczg}|jD])}t||j}|j|+|Sr,)r$ FrameTreeItemrr/)r)sublistinfors r GetSubListzStackTreeItem.GetSubList)s8JJD tzz2D NN4 rr,)r& __module__ __qualname__r*r"r4r9rrrrs8 rrc$eZdZdZdZdZdZy)r6c ||_||_yr,)r8r)r)r8rs rr*zFrameTreeItem.__init__3s  rc|j\}} |jd}|j}|j}|j}t j ||}|j}|dvr d|||fz}|Sd||||fz}|S#d}YixYw)Nr&?)r@Nz%s, line %d: %sz%s.%s(...), line %d: %s)r8 f_globalsf_code co_filenameco_name linecachegetlinestrip) r)rlinenomodnamecodefilenamefuncname sourceliners rr4zFrameTreeItem.GetText7s v ooj1G||##<<&&x8 %%'  &$'DDD --3Z0AAD  Gs BB c |j\}}g}|j|jur2td|j|j}|j |td|j|j}|j ||S)Nzz )r8rBf_localsVariablesTreeItemrr/)r)rrIr7rs rr9zFrameTreeItem.GetSubListIsm v ??%.. 0$ZLD NN4  eootzzJtrc|jrb|j\}}|jj}tj j |r|jj||yyyr,)rr8rCrDospathisfile gotofileline)r)rrIrLs r OnDoubleClickzFrameTreeItem.OnDoubleClickSsS :: IIME6||//Hww~~h' ''&9( rN)r&r:r;r*r4r9rWr<rrr6r61s$:rr6c$eZdZdZdZdZdZy)rQc|jSr,) labeltextr3s rr4zVariablesTreeItem.GetText]s ~~rcyr,r<r3s r GetLabelTextzVariablesTreeItem.GetLabelText`src2t|jdkDS)Nr)lenobjectr3s r IsExpandablezVariablesTreeItem.IsExpandablecs4;;!##rcg}|jjD]C} |j|}||jfd}t|dz||}|j |E|S#t$rYSwxYw)Nc|||<yr,r<)valuekeyobject_s r setfunctionz1VariablesTreeItem.GetSubList..setfunctionms $ rz =)r_keysKeyErrorrr/)r)r7rdrcrfrs rr9zVariablesTreeItem.GetSubListfsz;;##%C  C((+DKK %&sTz5+FD NN4 &   sA%% A10A1N)r&r:r;r4r\r`r9r<rrrQrQ[s$ rrQcbddlm}tj|}|j dt t |jjddd\}}|jd|dz|dzfz||} ty#t$r}t|||| Yd}~yd}~wwxYw) Nr)PyShellFileListzTest StackViewer+r z+%d+%d2)rr) idlelib.pyshellrjrrtitlemapintgeometrysplitintentional_name_error NameErrorr)parentrjrxyres r _stackbrowserrzts/ ++f CII ! sFOO%++C04 5DAqLLQVQW--. C E3 3S!5c223sB B.B))B.__main__)mainz"idlelib.idle_test.test_stackviewerF) verbosityexit)run)NN)rFrStkinterridlelib.debugobjrr idlelib.treerrrrrr6rQrzr&unittestr|idlelib.idle_test.htestrr<rrrsr @;;H6':H':T2 3 z -G+  r