[Python-Dev] PyChecker v0.5 released

Neal Norwitz PyChecker <pychecker@metaslash.com>
Tue, 29 May 2001 22:49:45 -0400


I was finally able to get version 0.5 out.  Just in case this is the
first time you are seeing this message, or you forgot what PyChecker is:

    PyChecker is a tool for finding common bugs in python source code.
    It finds problems that are typically caught by a compiler for less
    dynamic languages, like C and C++.  Because of the dynamic nature
    of python, some warnings may be incorrect; however,
    spurious warnings should be fairly infrequent.

The highlights are that code at the module scope is now checked.
There is still a problem with class variables and globals that are default
parameter values.  But other than that, there should be no more spurious
Variable unused warnings.

Code that makes PyChecker raise an exception should now be caught in most
cases and this produces a warning.  Please mail me if you find it blowing
up on your code.  The last line processed is shown in the warning, so
if you include some context, I can hopefully fix the problem.

Also, PyChecker should really use the files passed on the command line,
even if it uses the same module name internally.  So it will check your
warn.py, not PyChecker's warn.py.

Feedback, comments, criticisms, new ideas, better ideas, etc. are all 
greatly appreciated.  Thanks for everyone who has taken the time to mail me.
If you can think of common mistakes that are made that PyChecker doesn't
find, please let me know.

Here's the CHANGELOG:
  * Catch internal errors "gracefully" and turn into a warning
  * Add checking of most module scoped code
  * Add pychecker subdir to imports to prevent filename conflicts
  * Don't produce unused local variable warning if variable name == '_'
  * Add -g/--allglobals option to report all global warnings, not just first
  * Add -V/--varlist option to selectively ignore variable not used warnings
  * Add test script and expected results
  * Print all instructions when using debug (-d/--debug)
  * Overhaul internal stack handling so we can look for more problems
  * Fix glob'ing problems (all args after glob were ignored)
  * Fix spurious Base class __init__ not called
  * Fix exception on code like:  ['xxx'].index('xxx')
  * Fix exception on code like:  func(kw=(a < b))
  * Fix line numbers for import statements

PyChecker is available on Source Forge:
    Web page:           http://pychecker.sourceforge.net/
    Project page:       http://sourceforge.net/projects/pychecker/

Neal
--
pychecker@metaslash.com