Hat jemand das Teil schon mal unter Windows getestet? Ich hätte da gern mal einen Erfahrungsbericht. PyChecker gibts bei http://pychecker.sourceforge.net/. Das Programm kann mit einer wahren Flut von Optionen gestartet werden. Damit kann man sich dann auch ne ganze Menge Ärger sparen.
Code: Alles auswählen
hans@poorbill:~> pychecker -h
Usage for: checker.py [options] PACKAGE ...
PACKAGEs can be a python package, module or filename
Long options can be preceded with no- to turn off (e.g., no-namedargs)
Category
Options: Change warning for ... [default value]
Major Options:
-e, --errors turn off all warnings which are not likely errors
--complexity turn off all warnings which are related to complexity
-F, --config specify .pycheckrc file to use
Error Control:
-i, --import unused imports [on]
-k, --pkgimport unused imports from __init__.py [on]
-M, --reimportself module imports itself [on]
-X, --reimport reimporting a module [on]
-x, --miximport module does import and from ... import [on]
-l, --local unused local variables, except tuples [on]
-t, --tuple all unused local variables, including tuples [off]
-9, --members all unused class data members [off]
-v, --var all unused module variables [off]
-p, --privatevar unused private module variables [on]
-g, --allglobals report each occurrence of global warnings [off]
-n, --namedargs functions called with named arguments (like keywords) [off]
-a, --initattr Attributes (members) must be defined in __init__() [off]
-I, --initsubclass Subclass.__init__() not defined [off]
-u, --callinit Baseclass.__init__() not called [on]
-0, --abstract Subclass needs to override methods that only throw exceptions [on]
-N, --initreturn Return None from __init__() [on]
-8, --unreachable unreachable code [off]
-2, --constCond a constant is used in a conditional statement [on]
-1, --constant1 1 is used in a conditional statement (if 1: or while 1:) [off]
--stringiter check if iterating over a string [on]
-A, --callattr Calling data members as functions [off]
-y, --classattr class attribute does not exist [on]
-S, --self First argument to methods [self]
-T, --argsused unused method/function arguments [on]
-z, --varargsused unused method/function variable arguments [on]
-G, --selfused ignore if self is unused in methods [off]
-o, --override check if overridden methods have the same signature [on]
-U, --reuseattr check if function/class/method names are reused [on]
-Y, --positive check if using unary positive (+) which is usually meaningless [on]
-j, --moddefvalue check if modify (call method) on a parameter that has a default value
[on]
--changetypes check if variables are set to different types [off]
--unpack check if unpacking a non-sequence [on]
--unpacklen check if unpacking sequence with the wrong length [on]
--badexcept check if raising or catching bad exceptions [on]
Possible Errors:
-r, --returnvalues check consistent return values [on]
-C, --implicitreturns check if using implict and explicit return values [on]
-O, --objattrs check that attributes of objects exist [on]
-7, --slots various warnings about incorrect usage of __slots__ [on]
-3, --properties using properties with classic classes [on]
--emptyslots check if __slots__ is empty [on]
-D, --intdivide check if using integer division [on]
-w, --shadow check if local variable shadows a global [on]
Security:
--input check if input() is used [on]
-6, --exec check if the exec statement is used [off]
Suppressions:
-q, --stdlib ignore warnings from files under standard library [off]
-b, --blacklist ignore warnings from the list of modules
[['Tkinter', 'wxPython', 'gtk', 'GTK', 'GDK']]
-Z, --varlist ignore global variables not used if name is one of these values
[['__version__', '__warningregistry__', '__all__', '__credits__', '__author__', '__email__']]
-E, --unusednames ignore unused locals/arguments if name is one of these values
[['_', 'empty', 'unused', 'dummy']]
--deprecated ignore use of deprecated modules/functions [on]
Complexity:
-L, --maxlines maximum lines in a function [200]
-B, --maxbranches maximum branches in a function [50]
-R, --maxreturns maximum returns in a function [10]
-J, --maxargs maximum # of arguments to a function [10]
-K, --maxlocals maximum # of locals in a function [40]
-5, --maxrefs maximum # of identifier references (Law of Demeter) [5]
-m, --moduledoc no module doc strings [off]
-c, --classdoc no class doc strings [off]
-f, --funcdoc no function/method doc strings [off]
Debug:
--rcfile print a .pycheckrc file generated from command line args
-P, --printparse print internal checker parse structures [off]
-d, --debug turn on debugging for checker [off]
-Q, --quiet turn off all output except warnings
-V, --version print the version of PyChecker and exit
hans@poorbill:~>