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