[code-quality] [Python-projects] New warning about print parens not a good idea?

Carl Crowder carl.crowder at gmail.com
Thu Feb 6 07:24:59 CET 2014


I recently asked about the same thing, although there wasn't much discussion as a result.

Pylint is aware of "from __future__ import print_function" and using it will suppress this warning you are seeing. However that is not available for Python 2.5, so it depends on what kind of compatibility you're aiming for, I guess.

Given that the __future__ import exists, my preference is that pylint does warn, as using brackets near a print statement like that could represent a mistake and it's better to warn too much than too little. However I would also like to see a new error code for the print statement alone. Currently the 'superfluous-parens' warning covers all cases including 'if' and 'for' statements etc. A separate error code for the print statement/function would allow people to disable it independently and not remove the other useful warnings.

On 06.02.2014, at 06:48, Alexandre Fayolle ML <afayolle.ml at free.fr> wrote:

> On 06/02/2014 02:13, Dan Stromberg wrote:
>> 
>> I noticed recently that pylint has begun warning about use of parens on print statements in Python 2.x code.
>> 
>> This seems reasonable on the face of it, except it deters writing code that runs on 2.x and 3.x, unmodified.
>> 
>> The error looks like:
>> C:  5, 0: Unnecessary parens after 'print' keyword (superfluous-parens)
>> 
>> The offending line looks like:
>> print('hello')
>> 
>> To Python 2.x, that is printing the result of a parenthesized expression. To Python 3.x, it is of course a print function.
>> 
>> I understand that doing something like:
>> print('number:', 1)
>> ...would be bad in a dual-codebase script, but having a single argument works, and indeed is often a good idea for portability.
>> 
>> Thoughts?
>> 
>> -- 
>> Dan Stromberg
>> 
>> 
>> _______________________________________________
>> Python-Projects mailing list
>> Python-Projects at lists.logilab.org
>> http://lists.logilab.org/mailman/listinfo/python-projects
> 
> There is a __future__ import to enable print_function in python 2[67]. I'm not sure if Pylint knows about it, though...
> 
> cc-ing code-quality. 
> 
> Alexandre
> 
> 
> _______________________________________________
> code-quality mailing list
> code-quality at python.org
> https://mail.python.org/mailman/listinfo/code-quality

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/code-quality/attachments/20140206/c761c2bd/attachment.html>


More information about the code-quality mailing list