import bdb from repr import Repr import os import re import pprint import traceback class Restart(Exception): """Causes a debugger to be restarted for the debugged python program.""" pass # Create a custom safe Repr instance and increase its maxstring. # The default of 30 truncates error messages too easily. _repr = Repr() _repr.maxstring = 200 _saferepr = _repr.repr __all__ = ["run", "pm", "Pdb", "runeval", "runctx", "runcall", "set_trace", "post_mortem", "help"] def find_function(funcname, filename): cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname)) try: fp = open(filename) except IOError: return None # consumer of this info expects the first line to be 1 lineno = 1 answer = None while 1:
from repr import Repr import os import re import pprint import traceback class Restart(Exception): """Causes a debugger to be restarted for the debugged python program.""" pass # Create a custom safe Repr instance and increase its maxstring. # The default of 30 truncates error messages too easily. _repr = Repr() _repr.maxstring = 200 _saferepr = _repr.repr __all__ = [ "run", "pm", "Pdb", "runeval", "runctx", "runcall", "set_trace", "post_mortem", "help" ] def find_function(funcname, filename): cre = re.compile(r'def\s+%s\s*[(]' % re.escape(funcname)) try: fp = open(filename) except IOError: return None # consumer of this info expects the first line to be 1
sys.excepthook = sys.__excepthook__ """ import pdb import sys import traceback def pdb_excepthook(exc_type, exc_val, exc_tb): traceback.print_tb(exc_tb, limit=limit) pdb.post_mortem(exc_tb) sys.excepthook = pdb_excepthook return _repr_obj = Repr() _repr_obj.maxstring = 50 _repr_obj.maxother = 50 brief_repr = _repr_obj.repr # events: call, return, get, set, del, raise def trace_print_hook(event, label, obj, attr_name, args=(), kwargs={}, result=_UNSET): fargs = (event.ljust(6), time.time(), label.rjust(10), obj.__class__.__name__, attr_name) if event == 'get':
# - popup menu # - support partial or total redisplay # - more doc strings # - tooltips # object browser # XXX TO DO: # - for classes/modules, add "open source" to object browser from TreeWidget import TreeItem, TreeNode, ScrolledCanvas from repr import Repr myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 class ObjectTreeItem(TreeItem): def __init__(self, labeltext, object, setfunction=None): self.labeltext = labeltext self.object = object self.setfunction = setfunction def GetLabelText(self): return self.labeltext def GetText(self): return myrepr.repr(self.object)
# """ Tools for printing out extended information about frame variables """ import inspect import smtplib import sys import string import tempfile import traceback import xmlrpclib from repr import Repr _repr = Repr() _repr.maxstring = 3000 _saferepr = _repr.repr def printTraceBack(tb=None, output=sys.stderr, exc_type=None, exc_msg=None): if isinstance(output, str): output = open(output, 'w') exc_info = sys.exc_info() if tb is None: tb = exc_info[2] if exc_type is None: exc_type = exc_info[0] if exc_msg is None: exc_msg = exc_info[1]
# - popup menu # - support partial or total redisplay # - more doc strings # - tooltips # object browser # XXX TO DO: # - for classes/modules, add "open source" to object browser from TreeWidget import TreeItem, TreeNode, ScrolledCanvas from repr import Repr myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 class ObjectTreeItem(TreeItem): def __init__(self, labeltext, object, setfunction=None): self.labeltext = labeltext self.object = object self.setfunction = setfunction def GetLabelText(self): return self.labeltext def GetText(self): return myrepr.repr(self.object) def GetIconName(self): if not self.IsExpandable(): return "python" def IsEditable(self):
# See the License for the specific language governing permissions and # limitations under the License. # """ Tools for printing out extended information about frame variables """ import inspect import smtplib import sys import string import tempfile import traceback import xmlrpclib from repr import Repr _repr = Repr() _repr.maxstring = 3000 _saferepr = _repr.repr def printTraceBack(tb=None, output=sys.stderr, exc_type=None, exc_msg=None): if isinstance(output, str): output = open(output, 'w') exc_info = sys.exc_info() if tb is None: tb = exc_info[2] if exc_type is None: exc_type = exc_info[0] if exc_msg is None:
globalses = set() for module in modules: globalses.add(id(module.__dict__)) def trace(frame, event, arg): if event == 'line': print(frame.f_code.co_filename, frame.f_code.co_name, frame.f_lineno) if event == 'call': if id(frame.f_globals) in globalses: return trace sys.settrace(trace) _repr_obj = Repr() _repr_obj.maxstring = 50 _repr_obj.maxother = 50 brief_repr = _repr_obj.repr # events: call, return, get, set, del, raise def trace_print_hook(event, label, obj, attr_name, args=(), kwargs={}, result=_UNSET): fargs = (event.ljust(6), time.time(), label.rjust(10), obj.__class__.__name__, attr_name) if event == 'get': tmpl = '%s %s - %s - %s.%s -> %s' fargs += (brief_repr(result),) elif event == 'set': tmpl = '%s %s - %s - %s.%s = %s' fargs += (brief_repr(args[0]),)
# XXX TO DO: # - popup menu # - support partial or total redisplay # - more doc strings # - tooltips # object browser # XXX TO DO: # - for classes/modules, add "open source" to object browser from TreeWidget import TreeItem, TreeNode, ScrolledCanvas from repr import Repr myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 class ObjectTreeItem(TreeItem): def __init__(self, labeltext, object, setfunction=None): self.labeltext = labeltext self.object = object self.setfunction = setfunction def GetLabelText(self): return self.labeltext def GetText(self): return myrepr.repr(self.object) def GetIconName(self): if not self.IsExpandable(): return "python" def IsEditable(self): return self.setfunction is not None def SetText(self, text): try:
# XXX TO DO: # - popup menu # - support partial or total redisplay # - more doc strings # - tooltips # object browser # XXX TO DO: # - for classes/modules, add "open source" to object browser from TreeWidget import TreeItem, TreeNode, ScrolledCanvas from repr import Repr myrepr = Repr() myrepr.maxstring = 100 myrepr.maxother = 100 class ObjectTreeItem(TreeItem): def __init__(self, labeltext, object, setfunction=None): self.labeltext = labeltext self.object = object self.setfunction = setfunction def GetLabelText(self): return self.labeltext def GetText(self): return myrepr.repr(self.object) def GetIconName(self): if not self.IsExpandable(): return "python" def IsEditable(self): return self.setfunction is not None def SetText(self, text): try: value = eval(text)
from reprlib import Repr import os import re import pprint import traceback class Restart(Exception): """Causes a debugger to be restarted for the debugged python program.""" pass # Create a custom safe Repr instance and increase its maxstring. The default of 30 truncates error messages too easily. _repr = Repr() _repr.maxstring = 255 _saferepr = _repr.repr __all__ = [ "run", "pm", "Exterminator", "runeval", "runctx", "runcall", "set_trace", "post_mortem", "help" ] def output(*args): print(*args) def find_function(funcname, filename): cre = re.compile(r'def\s+{}\s*[(]'.format(re.escape(funcname))) try:
def log_repr(result): r = Repr() r.maxstring = 60 r.maxother = 60 return r.repr(result)
from ast import literal_eval from repr import Repr CL = "\r\033[0K" repr_s = Repr() repr_s.maxlevel = 3 repr_s.maxdict = 2 repr_s.maxlist = 2 repr_s.maxtuple = 2 repr_s.maxset = 2 repr_s.maxfrozenset = 2 repr_s.maxdeque = 2 repr_s.maxarray = 2 repr_s.maxlong = 20 repr_s.maxstring = 20 repr_s.maxother = 15 TMP_RAM = "/dev/shm" if os.access("/dev/shm", os.W_OK) else None def repr_call(fname, *args, **kwargs): return "%s(%s)" % (fname, ", ".join(chain((repr(arg) for arg in args), ("%s=%r" % (k,v) for k, v in kwargs.iteritems())))) def read_chapters(fp=sys.stdin): chp = [] sec = [] cur = [] for line in fp: if line[0] == '\f': if cur: sec.append(cur)