On 5/7/2016 3:40 PM, Terry Reedy wrote:
On 5/7/2016 12:51 PM, DFS wrote:
This more-anal-than-me program generated almost 2 warnings for every
line of code in my program.  w t hey?

If you don't like it, why do you use it?


I've never used it before last night. I was shocked at what it spewed back at me.



I suppose the answer is that it did find a few things to check.  You
might be happier with pychecker, which is much less aggressive.

I'll give it a shot.



I believe will find the things you did fix.

I'm not parsing this statement. You mean pychecker will find the same things pylint found, and that I fixed?

If it finds them after I fixed them... it's a magical program :)



                                            DFS comments
+-------------------------+------------+ -------------------------------
|message id               |occurrences |
+=========================+============+
|mixed-indentation        |186         | I always use tab
+-------------------------+------------+
|invalid-name             |82          | every single variable name?!

I would need examples to comment.


Invalid constant name "cityzip" (invalid-name)
Invalid constant name "state" (invalid-name)
Invalid constant name "miles" (invalid-name)
Invalid constant name "store" (invalid-name)
Invalid variable name "rs" (invalid-name)



+-------------------------+------------+
|trailing-whitespace      |59          | heh!

Any code editor should have a command to fix this.
IDLE: Format => strip trailing whitespace
Notepad++: Macro => trim trailing and save, Alt-Shift-S
others ...

That did it.


+-------------------------+------------+
|no-member                |5           |

"Module 'pyodbc' has no 'connect' member"   Yes it does.
"Module 'pyodbc' has no 'Error' member"     Yes it does.

Issue with pylint, or pyodbc?

Worth looking into.  Could be a bug somewhere. But I don't have pyodbc
installed.

+-------------------------+------------+
|line-too-long            |5           | meh

For following the PEP guideline when patching CPython, this is helpful.

+-------------------------+------------+
|wrong-import-order       |4           | does it matter?

Consistency in imports ultimately makes easier reading.
Many idlelib files use this order: stdlib modules other than tkinter and
idlelib (alphabetically); tkinter (tkinter first, then submodules);
idlelib (alphabetically).  When I edit files, I sometimes reorder
imports to conform.


It complains 2x about this:

import os, sys, time, datetime
import pyodbc, sqlite3
import re, requests
from lxml import html


But I think there are some pylint bugs here:
-------------------------------------------------------------------------

standard import "import pyodbc, sqlite3" comes before "import pyodbc, sqlite3" (wrong-import-order)

  * complains that the line comes before itself?

-------------------------------------------------------------------------

standard import "import re, requests" comes before "import pyodbc, sqlite3" (wrong-import-order)

  * So I switched them, and then it complained about that:

standard import "import pyodbc, sqlite3" comes before "import re, requests" (wrong-import-order)

-------------------------------------------------------------------------

You can't win with pylint...

And, the author probably isn't a native English-speaker, since when he says 'comes before' I think he means 'should come before'.





+-------------------------+------------+
|missing-docstring        |4           | what's the difference between
                                         a docstring and a # comment?

# Comments only appear in the source
'''Docstrings are copied to the compiled code object, are interactively
accessible, and are used for help(ojb) output.'''


+-------------------------+------------+
|superfluous-parens       |3           | I like to surround 'or'
                                         statments with parens

I would need examples to comment


if ("Please choose a state" in str(matches)):
if (var == "val" or var2 == "val2"):


+-------------------------+------------+
|bad-builtin              |2           | warning because I used filter?

If they are still doing this in the latest release, it is an arrogance
and inconsistency bug on their part.  Disable this check.

$ pylint --version
No config file found, using default configuration
pylint 1.5.5,
astroid 1.4.5
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)]


It says "Used builtin function 'filter'. Using a list comprehension can be clearer. (bad-builtin)"



+-------------------------+------------+
|missing-final-newline    |1           | I'm using Notepad++, with
                                         EOL Conversion set to
                                         'Windows Format'.

That says to replace final '\n' with '\r\n'.  It does not affect a
missing final newline ;-)

                                           How or should I fix this?

Fix by hitting 'Enter' at the end of the last line.
Should you?  I think it a good habit.

Done


After fixes and disabling various warnings:
"Your code has been rated at 8.37/10"

Being able to customize pylint by turning off warnings is its saving
feature.

Yes. If I had to see 300-350 lines of output every time I wouldn't ever use it again.

Overall, I do like a majority of the things it suggested.

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to