404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.135.215.82: ~ $
import linecache
import os
import sys

import tkinter as tk

from idlelib.debugobj import ObjectTreeItem, make_objecttreeitem
from idlelib.tree import TreeNode, TreeItem, ScrolledCanvas

def StackBrowser(root, flist=None, tb=None, top=None):
    global sc, item, node  # For testing.
    if top is None:
        top = tk.Toplevel(root)
    sc = ScrolledCanvas(top, bg="white", highlightthickness=0)
    sc.frame.pack(expand=1, fill="both")
    item = StackTreeItem(flist, tb)
    node = TreeNode(sc.canvas, None, item)
    node.expand()


class StackTreeItem(TreeItem):

    def __init__(self, flist=None, tb=None):
        self.flist = flist
        self.stack = self.get_stack(tb)
        self.text = self.get_exception()

    def get_stack(self, tb):
        if tb is None:
            tb = sys.last_traceback
        stack = []
        if tb and tb.tb_frame is None:
            tb = tb.tb_next
        while tb is not None:
            stack.append((tb.tb_frame, tb.tb_lineno))
            tb = tb.tb_next
        return stack

    def get_exception(self):
        type = sys.last_type
        value = sys.last_value
        if hasattr(type, "__name__"):
            type = type.__name__
        s = str(type)
        if value is not None:
            s = s + ": " + str(value)
        return s

    def GetText(self):
        return self.text

    def GetSubList(self):
        sublist = []
        for info in self.stack:
            item = FrameTreeItem(info, self.flist)
            sublist.append(item)
        return sublist


class FrameTreeItem(TreeItem):

    def __init__(self, info, flist):
        self.info = info
        self.flist = flist

    def GetText(self):
        frame, lineno = self.info
        try:
            modname = frame.f_globals["__name__"]
        except:
            modname = "?"
        code = frame.f_code
        filename = code.co_filename
        funcname = code.co_name
        sourceline = linecache.getline(filename, lineno)
        sourceline = sourceline.strip()
        if funcname in ("?", "", None):
            item = "%s, line %d: %s" % (modname, lineno, sourceline)
        else:
            item = "%s.%s(...), line %d: %s" % (modname, funcname,
                                             lineno, sourceline)
        return item

    def GetSubList(self):
        frame, lineno = self.info
        sublist = []
        if frame.f_globals is not frame.f_locals:
            item = VariablesTreeItem("<locals>", frame.f_locals, self.flist)
            sublist.append(item)
        item = VariablesTreeItem("<globals>", frame.f_globals, self.flist)
        sublist.append(item)
        return sublist

    def OnDoubleClick(self):
        if self.flist:
            frame, lineno = self.info
            filename = frame.f_code.co_filename
            if os.path.isfile(filename):
                self.flist.gotofileline(filename, lineno)


class VariablesTreeItem(ObjectTreeItem):

    def GetText(self):
        return self.labeltext

    def GetLabelText(self):
        return None

    def IsExpandable(self):
        return len(self.object) > 0

    def GetSubList(self):
        sublist = []
        for key in self.object.keys():
            try:
                value = self.object[key]
            except KeyError:
                continue
            def setfunction(value, key=key, object=self.object):
                object[key] = value
            item = make_objecttreeitem(key + " =", value, setfunction)
            sublist.append(item)
        return sublist


def _stack_viewer(parent):  # htest #
    from idlelib.pyshell import PyShellFileList
    top = tk.Toplevel(parent)
    top.title("Test StackViewer")
    x, y = map(int, parent.geometry().split('+')[1:])
    top.geometry("+%d+%d" % (x + 50, y + 175))
    flist = PyShellFileList(top)
    try: # to obtain a traceback object
        intentional_name_error
    except NameError:
        exc_type, exc_value, exc_tb = sys.exc_info()
    # inject stack trace to sys
    sys.last_type = exc_type
    sys.last_value = exc_value
    sys.last_traceback = exc_tb

    StackBrowser(top, flist=flist, top=top, tb=exc_tb)

    # restore sys to original state
    del sys.last_type
    del sys.last_value
    del sys.last_traceback

if __name__ == '__main__':
    from unittest import main
    main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False)

    from idlelib.idle_test.htest import run
    run(_stack_viewer)

Filemanager

Name Type Size Permission Actions
Icons Folder 0755
__pycache__ Folder 0755
idle_test Folder 0755
CREDITS.txt File 1.82 KB 0644
ChangeLog File 55.04 KB 0644
HISTORY.txt File 10.07 KB 0644
NEWS.txt File 38.91 KB 0644
NEWS2x.txt File 26.54 KB 0644
README.txt File 9.37 KB 0644
TODO.txt File 8.28 KB 0644
__init__.py File 396 B 0644
__main__.py File 159 B 0644
_pyclbr.py File 14.84 KB 0644
autocomplete.py File 9.11 KB 0644
autocomplete_w.py File 19.36 KB 0644
autoexpand.py File 3.14 KB 0644
browser.py File 8.09 KB 0644
calltip.py File 5.92 KB 0644
calltip_w.py File 6.94 KB 0644
codecontext.py File 10.24 KB 0644
colorizer.py File 11.01 KB 0644
config-extensions.def File 2.21 KB 0644
config-highlight.def File 2.62 KB 0644
config-keys.def File 10.52 KB 0644
config-main.def File 3.05 KB 0644
config.py File 37.97 KB 0644
config_key.py File 13.09 KB 0644
configdialog.py File 98.69 KB 0644
debugger.py File 18.65 KB 0644
debugger_r.py File 11.86 KB 0644
debugobj.py File 3.96 KB 0644
debugobj_r.py File 1.06 KB 0644
delegator.py File 1.02 KB 0644
dynoption.py File 1.97 KB 0644
editor.py File 65.7 KB 0644
extend.txt File 3.56 KB 0644
filelist.py File 3.8 KB 0644
grep.py File 6.58 KB 0644
help.html File 53.82 KB 0644
help.py File 11.06 KB 0644
help_about.py File 8.77 KB 0644
history.py File 3.95 KB 0644
hyperparser.py File 12.58 KB 0644
idle.py File 454 B 0644
idle.pyw File 570 B 0644
iomenu.py File 20.25 KB 0644
macosx.py File 9.43 KB 0644
mainmenu.py File 3.62 KB 0644
multicall.py File 18.21 KB 0644
outwin.py File 5.67 KB 0644
paragraph.py File 7 KB 0644
parenmatch.py File 7.04 KB 0644
pathbrowser.py File 3.12 KB 0644
percolator.py File 3.06 KB 0644
pyparse.py File 19.65 KB 0644
pyshell.py File 56.38 KB 0755
query.py File 12.14 KB 0644
redirector.py File 6.71 KB 0644
replace.py File 7.33 KB 0644
rpc.py File 20.64 KB 0644
rstrip.py File 868 B 0644
run.py File 16.87 KB 0644
runscript.py File 7.66 KB 0644
scrolledlist.py File 4.35 KB 0644
search.py File 3.09 KB 0644
searchbase.py File 7.28 KB 0644
searchengine.py File 7.3 KB 0644
squeezer.py File 13 KB 0644
stackviewer.py File 4.35 KB 0644
statusbar.py File 1.41 KB 0644
textview.py File 5.98 KB 0644
tooltip.py File 6.33 KB 0644
tree.py File 14.74 KB 0644
undo.py File 10.79 KB 0644
window.py File 2.53 KB 0644
zoomheight.py File 1.31 KB 0644
zzdummy.py File 961 B 0644