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

Antoine Pitrou solipsis at pitrou.net
Tue Apr 30 13:12:16 CEST 2013


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?

There's one thing this proposal would make more difficult, which is
machine-processing of tracebacks. Otherwise it does look better to me.

Regards

Antoine.





More information about the Python-ideas mailing list