[Python-ideas] Reporting unmatched parentheses in SyntaxError messages?
Andrew Barnert
abarnert at yahoo.com
Wed Jul 8 09:30:16 CEST 2015
On Jul 7, 2015, at 22:53, Nick Coghlan <ncoghlan at gmail.com> wrote:
>
> One of the more opaque error messages new Python users can encounter
> is a syntax error due to unmatched parentheses:
>
> File "/home/me/myfile.py", line 11
> data = func()
> ^
> SyntaxError: invalid syntax
>
> While I have no idea how we could implement it, I'm wondering if that
> might be clearer if the error message instead looked more like this:
>
> File "/home/me/myfile.py", line 11
> data = func()
> ^
> SyntaxError: invalid syntax (Unmatched '(' on line 10)
>
> Or, similarly,
>
> SyntaxError: invalid syntax (Unmatched '[' on line 10)
> SyntaxError: invalid syntax (Unmatched '{' on line 10)
>
> I'm not sure it would be feasible though - we generate syntax errors
> from a range of locations where we don't have access to the original
> token data any more :(
Do we know that there's an unbalanced parens (or bracket or brace) even when we don't know where it is? I think this would still be sufficient:
File "/home/me/myfile.py", line 11
data = func()
^
SyntaxError: invalid syntax (Unmatched '(', possibly on a previous line)
Really, just telling people to look at a previous line for unmatched pairs is sufficient to solve the problem every time it comes up on #python, StackOverflow, etc.
(Of course this would take away a great opportunity to explain to novices why they might want to use a better editor than Notepad, something which can show them mismatched parens automatically.)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150708/e77da67f/attachment.html>
More information about the Python-ideas
mailing list