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.
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. On Thu, Feb 6, 2014 at 12:24 AM, Carl Crowder <carl.crow...@gmail.com>wrote: > 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...@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 > listPython-Projects@lists.logilab.orghttp://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@python.org > https://mail.python.org/mailman/listinfo/code-quality > > > > _______________________________________________ > code-quality mailing list > code-quality@python.org > https://mail.python.org/mailman/listinfo/code-quality > >
_______________________________________________ code-quality mailing list code-quality@python.org https://mail.python.org/mailman/listinfo/code-quality