<div dir="ltr"><div>If there are many people who actually want to enforce the non-use of print(arg) in 2.x for some specific reason, and not just because it is bad style to write if (a == b) or foobar((2)) - then I would strongly prefer for an error code to disable this check independently of the other useful warnings, as Carl Crowder suggested. </div>
<div><br></div><div>As a user who does a lot of porting and also uses pylint for its strictness, I think it's important for pylint to be able to allow this common, concise, useful idiom for single-source portability back to 2.5. Making code portable across 2 and 3 is already more tedious than many people will accept, so as a supporter of both Python flavors I wouldn't want any more barriers from tools if they aren't necessary.</div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Feb 6, 2014 at 12:24 AM, Carl Crowder <span dir="ltr"><<a href="mailto:carl.crowder@gmail.com" target="_blank">carl.crowder@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I recently asked about the same thing, although there wasn't much discussion as a result.<div>
<br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br><div><div><div class="h5"><div>On 06.02.2014, at 06:48, Alexandre Fayolle ML <<a href="mailto:afayolle.ml@free.fr" target="_blank">afayolle.ml@free.fr</a>> wrote:</div><br></div></div><blockquote type="cite">
<div><div class="h5">
<div bgcolor="#FFFFFF" text="#000000">
<div>On 06/02/2014 02:13, Dan Stromberg
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
I noticed recently that pylint has begun warning about use of
parens on print statements in Python 2.x code.
<div><br>
</div>
<div>This seems reasonable on the face of it, except it deters
writing code that runs on 2.x and 3.x, unmodified.</div>
<div><br>
</div>
<div>The error looks like:</div>
<div>
<div>C: 5, 0: Unnecessary parens after 'print' keyword
(superfluous-parens)</div>
<div><br>
</div>
<div>The offending line looks like:</div>
<div>
<div>print('hello')</div>
</div>
<div><br>
</div>
<div>To Python 2.x, that is printing the result of a
parenthesized expression. To Python 3.x, it is of course a
print function.</div>
<div><br>
</div>
<div>I understand that doing something like:</div>
<div>
print('number:', 1)</div>
<div>...would be bad in a dual-codebase script, but having a
single argument works, and indeed is often a good idea for
portability.</div>
<div><br>
</div>
<div>Thoughts?</div>
<div><br>
</div>
-- <br>
Dan Stromberg
</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
Python-Projects mailing list
<a href="mailto:Python-Projects@lists.logilab.org" target="_blank">Python-Projects@lists.logilab.org</a>
<a href="http://lists.logilab.org/mailman/listinfo/python-projects" target="_blank">http://lists.logilab.org/mailman/listinfo/python-projects</a></pre>
</blockquote>
<br>
There is a __future__ import to enable print_function in python
2[67]. I'm not sure if Pylint knows about it, though...<br>
<br>
cc-ing code-quality. <br>
<br>
Alexandre<br>
<br>
<br>
</div></div></div>
_______________________________________________<br>code-quality mailing list<br><a href="mailto:code-quality@python.org" target="_blank">code-quality@python.org</a><br><a href="https://mail.python.org/mailman/listinfo/code-quality" target="_blank">https://mail.python.org/mailman/listinfo/code-quality</a><br>
</blockquote></div><br></div></div><br>_______________________________________________<br>
code-quality mailing list<br>
<a href="mailto:code-quality@python.org">code-quality@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/code-quality" target="_blank">https://mail.python.org/mailman/listinfo/code-quality</a><br>
<br></blockquote></div><br></div>