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