2010-05-13 00:58:01 +02:00
|
|
|
PyChecker is a tool for finding bugs in python source code. It finds problems
|
|
|
|
that are typically caught by a compiler for less dynamic languages, like C and
|
|
|
|
C++. It is similar to lint. Because of the dynamic nature of python, some
|
|
|
|
warnings may be incorrect; however, spurious warnings should be fairly
|
|
|
|
infrequent.
|
|
|
|
|
|
|
|
PyChecker works in a combination of ways. First, it imports each module. If
|
|
|
|
there is an import error, the module cannot be processed. The import provides
|
|
|
|
some basic information about the module. The code for each function, class,
|
|
|
|
and method is checked for possible problems.
|
|
|
|
|
|
|
|
Types of problems that can be found include:
|
|
|
|
* No global found (e.g., using a module without importing it)
|
|
|
|
* Passing the wrong number of parameters to functions/methods/constructors
|
|
|
|
* Passing the wrong number of parameters to builtin functions & methods
|
|
|
|
* Using format strings that don't match arguments
|
|
|
|
* Using class methods and attributes that don't exist
|
|
|
|
* Changing signature when overriding a method
|
|
|
|
* Redefining a function/class/method in the same scope
|
|
|
|
* Using a variable before setting it
|
|
|
|
* self is not the first parameter defined for a method
|
|
|
|
* Unused globals and locals (module or variable)
|
|
|
|
* Unused function/method arguments (can ignore self)
|
2011-06-19 18:36:22 +02:00
|
|
|
* No doc strings in modules, classes, functions, and methods
|
2010-05-13 00:58:01 +02:00
|
|
|
|