Index: Lib/cgitb.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/cgitb.py,v retrieving revision 1.16 diff -c -r1.16 cgitb.py *** Lib/cgitb.py 6 Feb 2005 06:57:07 -0000 1.16 --- Lib/cgitb.py 19 Feb 2005 22:21:38 -0000 *************** *** 111,130 **** indent = '' + small(' ' * 5) + ' ' frames = [] records = inspect.getinnerframes(etb, context) ! for frame, file, lnum, func, lines, index in records: ! file = file and os.path.abspath(file) or '?' ! link = '%s' % (file, pydoc.html.escape(file)) args, varargs, varkw, locals = inspect.getargvalues(frame) call = '' if func != '?': call = 'in ' + strong(func) + \ inspect.formatargvalues(args, varargs, varkw, locals, formatvalue=lambda value: '=' + pydoc.html.repr(value)) highlight = {} def reader(lnum=[lnum]): highlight[lnum[0]] = 1 ! try: return linecache.getline(file, lnum[0]) finally: lnum[0] += 1 vars = scanvars(reader, frame, locals) --- 111,135 ---- indent = '' + small(' ' * 5) + ' ' frames = [] records = inspect.getinnerframes(etb, context) ! for frame, filename, lnum, func, lines, index in records: ! if filename: ! filename = os.path.abspath(filename) ! link = '%s' % (filename, pydoc.html.escape(filename)) ! else: ! filename = link = '?' args, varargs, varkw, locals = inspect.getargvalues(frame) call = '' if func != '?': call = 'in ' + strong(func) + \ inspect.formatargvalues(args, varargs, varkw, locals, formatvalue=lambda value: '=' + pydoc.html.repr(value)) + if lnum: + call += ":%d" % lnum highlight = {} def reader(lnum=[lnum]): highlight[lnum[0]] = 1 ! try: return linecache.getline(filename, lnum[0]) finally: lnum[0] += 1 vars = scanvars(reader, frame, locals) *************** *** 196,218 **** frames = [] records = inspect.getinnerframes(etb, context) ! for frame, file, lnum, func, lines, index in records: ! file = file and os.path.abspath(file) or '?' args, varargs, varkw, locals = inspect.getargvalues(frame) call = '' if func != '?': call = 'in ' + func + \ inspect.formatargvalues(args, varargs, varkw, locals, formatvalue=lambda value: '=' + pydoc.text.repr(value)) highlight = {} def reader(lnum=[lnum]): highlight[lnum[0]] = 1 ! try: return linecache.getline(file, lnum[0]) finally: lnum[0] += 1 vars = scanvars(reader, frame, locals) ! rows = [' %s %s' % (file, call)] if index is not None: i = lnum - index for line in lines: --- 201,225 ---- frames = [] records = inspect.getinnerframes(etb, context) ! for frame, filename, lnum, func, lines, index in records: ! filename = filename and os.path.abspath(filename) or '?' args, varargs, varkw, locals = inspect.getargvalues(frame) call = '' if func != '?': call = 'in ' + func + \ inspect.formatargvalues(args, varargs, varkw, locals, formatvalue=lambda value: '=' + pydoc.text.repr(value)) + if lnum: + call += ":%d" % lnum highlight = {} def reader(lnum=[lnum]): highlight[lnum[0]] = 1 ! try: return linecache.getline(filename, lnum[0]) finally: lnum[0] += 1 vars = scanvars(reader, frame, locals) ! rows = [' %s %s' % (filename, call)] if index is not None: i = lnum - index for line in lines: *************** *** 252,263 **** class Hook: """A hook to replace sys.excepthook that shows tracebacks in HTML.""" ! def __init__(self, display=1, logdir=None, context=5, file=None, format="html"): self.display = display # send tracebacks to browser if true self.logdir = logdir # log tracebacks to files if not None self.context = context # number of source code lines per frame ! self.file = file or sys.stdout # place to send the output self.format = format def __call__(self, etype, evalue, etb): --- 259,270 ---- class Hook: """A hook to replace sys.excepthook that shows tracebacks in HTML.""" ! def __init__(self, display=1, logdir=None, context=5, outfile=None, format="html"): self.display = display # send tracebacks to browser if true self.logdir = logdir # log tracebacks to files if not None self.context = context # number of source code lines per frame ! self.file = outfile or sys.stdout # place to send the output self.format = format def __call__(self, etype, evalue, etb): *************** *** 291,299 **** suffix = ['.txt', '.html'][self.format=="html"] (fd, path) = tempfile.mkstemp(suffix=suffix, dir=self.logdir) try: ! file = os.fdopen(fd, 'w') ! file.write(doc) ! file.close() msg = '
%s contains the description of this error.' % path except: msg = '
Tried to save traceback to %s, but failed.' % path --- 298,306 ---- suffix = ['.txt', '.html'][self.format=="html"] (fd, path) = tempfile.mkstemp(suffix=suffix, dir=self.logdir) try: ! logfile = os.fdopen(fd, 'w') ! logfile.write(doc) ! logfile.close() msg = '
%s contains the description of this error.' % path except: msg = '
Tried to save traceback to %s, but failed.' % path