[issue32685] Erroneous suggestion in print statement

2018-01-28 Thread Nick Coghlan

Nick Coghlan  added the comment:

Thanks for the patches, Sanyam & Nitish, and for the original bug report Mayank.

Thanks also to Cheryl for nudging us to get it resolved :)

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-28 Thread Nick Coghlan

Nick Coghlan  added the comment:


New changeset b3b4b81d0147534151941105eba4af984acdc763 by Nick Coghlan (Miss 
Islington (bot)) in branch '3.6':
bpo-32685: Improve suggestion for print statement (GH-5380)
https://github.com/python/cpython/commit/b3b4b81d0147534151941105eba4af984acdc763


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-28 Thread miss-islington

Change by miss-islington :


--
pull_requests: +5221
stage: backport needed -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-28 Thread Nick Coghlan

Change by Nick Coghlan :


--
stage: patch review -> backport needed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-28 Thread Nick Coghlan

Nick Coghlan  added the comment:


New changeset 43c0f1ac5ed8bc9c3bd048d2ce4de4c98a83de99 by Nick Coghlan (Nitish 
Chandra) in branch 'master':
bpo-32685: Improve suggestion for print statement (GH-5375)
https://github.com/python/cpython/commit/43c0f1ac5ed8bc9c3bd048d2ce4de4c98a83de99


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Sanyam Khurana

Change by Sanyam Khurana :


--
pull_requests: +5217

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Nitish

Change by Nitish :


--
keywords: +patch
pull_requests: +5216
stage: needs patch -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Nick Coghlan

Nick Coghlan  added the comment:

They're the only characters we won't want to include as part of the suggestion, 
since they indicate the end of the statement.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Nitish

Nitish  added the comment:

> For the right offset, I think we'll want to drop the initial XStrip call 
> added for bpo-32028 entirely, and instead calculate the right offset as a 
> PyUnicode_FindChar search for ";" (replacing it with the length of the input 
> string if the separator isn't found).

Are ';' and whitespace the only allowed characters following the print 
expression?

--
nosy: +nitishch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Nick Coghlan

Nick Coghlan  added the comment:

Re-reading the code for _set_legacy_print_statement_msg, I noticed that we're 
not currently taking the "start" parameter into account, and that's the offset 
the compiler passes in to tell us where on the line it found the text "print ". 
Oops :)

We're also currently going to mishandle code like "x = 1; print x; pass" as 
well: the suggestion for that is "print(x)", but we would currently suggest 
"print(print x; pass)".

Fixing the left offset shouldn't be too difficult, as I believe the correct 
value for that is just "PRINT_OFFSET + start".

For the right offset, I think we'll want to drop the initial XStrip call added 
for bpo-32028 entirely, and instead calculate the right offset as a 
PyUnicode_FindChar search for ";" (replacing it with the length of the input 
string if the separator isn't found).

Any trailing whitespace (either before the ";", if one is present, or before 
the end of the line otherwise) will then be stripped by the remaining XStrip 
call (the one after the PyUnicode_Substring call).

(Even with those improvements, there will still be cases where the heuristic 
gives an incorrect suggestion due to a syntax error within the expression to be 
displayed, like "print value:", but there isn't anything simple we can do about 
those short of trying to compile the calculated suggestion, and I'm not 
prepared to go that far yet)

--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Sanyam Khurana

Sanyam Khurana  added the comment:

Thanks for the report Mayank!

As we discussed offline, it is indeed reproducible if someone uses `print` on 
the same line (such as in this case, where a loop is used).

I will look into this issue.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Cheryl Sabella

Cheryl Sabella  added the comment:

Thank you for the report.  The change to the exception message was added in 
#30597, but it looks like it may be too greedy.  Adding the developer to the 
nosy list.

--
nosy: +CuriousLearner, csabella, ncoghlan
stage:  -> needs patch

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32685] Erroneous suggestion in print statement

2018-01-27 Thread Mayank Singhal

New submission from Mayank Singhal <17mayanksing...@gmail.com>:

The suggestion given when a for and print with the syntax for python 2.x are 
used together seems erroneous.

Steps to reproduce:
Just type following in the python interpreter (3.x):


for p in some_list: print p


The error produced is:

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(in 
some_list: print p)?

I am also attaching a small file, that produces the error when run with:

python3 printBug.py

--
components: Interpreter Core
files: printBug.py
messages: 310852
nosy: storymode7
priority: normal
severity: normal
status: open
title: Erroneous suggestion in print statement
type: behavior
versions: Python 3.6, Python 3.7
Added file: https://bugs.python.org/file47412/printBug.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com