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)
* No doc strings in modules, classes, functions, and methods