Stefan Behnel wrote:
I want them to look like this:

Traceback (most recent call last):
...
File "/usr/lib/python2.4/site-packages/pyparsing.py", line 456, in parse
loc,tokens = self.parseImpl( instring, loc, doActions )
File "/usr/lib/python2.4/site-packages/pyparsing.py", line 727, in parseImpl
raise exc
PyParsing, line 5, in SomeStatement
PARSER TEST FOR TESTING MISSING TERM
ParseException: Expected "SOMEOTHERTERM" (146), (5,9)

This query's a little old now, but I found this through the Weekly URL.

Anyway, Zope's ExceptionFormatter has one answer to this; you put a local variable like:

    __traceback_info__ = ('PyParsing, line %i, in %s\n  %s'
        % (line, statement, message))

And then that will show up in the traceback, much like you want. The formatter looks through all the frames for this local variable and prints it out when found. It's used in Zope for showing line numbers and other information when its interpreting scripts like Zope Page Templates or Python Scripts -- so that instead of just seeing the traceback from the interpreter, you also see information about what the interpreter is doing. This sounds similar to what you want.

It's pretty simple to use and it doesn't depend on the rest of Zope: http://cvs.zope.org/Products/ErrorReporter/ExceptionFormatter.py?rev=HEAD&content-type=text/vnd.viewcvs-markup


-- Ian Bicking / [EMAIL PROTECTED] / http://blog.ianbicking.org -- http://mail.python.org/mailman/listinfo/python-list

Reply via email to