[Python-ideas] Make traceback messages aware of line continuation

Giampaolo Rodola' g.rodola at gmail.com
Tue Apr 30 16:27:50 CEST 2013


2013/4/30 Antoine Pitrou <solipsis at pitrou.net>:
> On Mon, 29 Apr 2013 20:40:37 -0400
> Terry Jan Reedy <tjreedy at udel.edu> wrote:
>> >>
>> >> The information about the statement which produced the exception is lost.
>> >> Instead I would expect:
>> >>
>> >> Traceback (most recent call last):
>> >>    File "foo.py", line 1, in <module>
>> >>      assert \
>> >>          1 == 0, \
>> >>              "error"
>> >> AssertionError: error
>> >>
>> >>
>> >> Not sure how easy this is to implement but I think it would be a good
>> >> enhancement.
>> >> Thoughts?
>>
>> Very dubious idea, for multiple reasons given on the issue.
>>
>> > It seems this is already tracked in http://bugs.python.org/issue12458
>>
>> For your example, the OP of that issue would replace the line '"error"'
>> with 'assert', which would not be helpful at all. If your statement was
>>
>> assert some_fairly_long_expression_with_calls ==\
>>      something_else, "error"
>>
>> then is would not be clear that backing up would be helpful.
>
> Perhaps you've missed that Giampaolo's suggestion was to print the
> *entire* statement, not just one line chosen at random?

Exactly.

2013/4/30 Guido van Rossum <guido at python.org>:
> Would it also understand line continuations using parentheses ( the more
> common style)?

Yes, definitively (see http://bugs.python.org/msg188159).
I came up with this idea because this is especially annoying during
tests, where it's not rare to have long self.assert* statements split
over multiple lines.
Every time you get a failure you'll likely have to open the test file
with an editor and go to line N in order to figure out what the entire
assert statement looked like.

--- Giampaolo
https://code.google.com/p/pyftpdlib/
https://code.google.com/p/psutil/
https://code.google.com/p/pysendfile/



More information about the Python-ideas mailing list