""" import sys, os import linecache import bdb from repr import Repr import re import CLI # Create a custom safe Repr instance and increase its maxstring. # The default of 30 truncates error messages too easily. _repr = Repr() _repr.maxstring = 200 _repr.maxother = 50 _saferepr = _repr.repr # set environment from interactive config file #RCFILE = os.path.expandvars("$HOME/.pyinteractiverc") #try: # env = {} # execfile(RCFILE, env, env) #except: # pass #else: # for name, val in env.items(): # if type(val) is str: # os.environ[name] = val #del name, val, env
""" 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': tmpl = '%s %s - %s - %s.%s -> %s'
# - 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):
# - 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
import sys, os import linecache import bdb from repr import Repr import re from pycopia import IO from pycopia import UI from pycopia import CLI from pycopia.aid import IF # Create a custom safe Repr instance and increase its maxstring. # The default of 30 truncates error messages too easily. _repr = Repr() _repr.maxstring = 200 _repr.maxother = 50 _saferepr = _repr.repr DebuggerQuit = bdb.BdbQuit def find_function(funcname, filename): cre = re.compile(r'def\s+%s\s*[(]' % 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:
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]),) elif event == 'del':
# 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)
def log_repr(result): r = Repr() r.maxstring = 60 r.maxother = 60 return r.repr(result)
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) cur = [line[1:]]