[LWN Logo]
From: Neal Norwitz <neal@metaslash.com>
Newsgroups: comp.lang.python.announce
Subject: PyChecker - a python source code bug finder
To: python-announce-list@python.org
Date: Sat, 07 Apr 2001 14:28:00 -0400

PyChecker is a python source code checking tool to help you find common bugs. It is meant to find problems that are
typically caught by a compiler. Because of the dynamic nature of python, some warnings may be incorrect; however,
spurious warnings should be fairly infrequent.

Types of problems that can currently, be found include: 

    * No doc strings in modules, classes, functions, and methods 
    * self not the first parameter to a method 
    * Wrong number of parameters passed to functions/methods 
    * No global found (e.g., using a module without importing it) 
    * Global not used (module or variable) 

PyChecker currently runs on Python 2.0.  If there's interest, it can be back ported to Python 1.5.2.

I have run PyChecker against Python 2.1b2a, the following are problems found in the standard python modules:

    ### Warnings
        codeop.py:3 Imported module (sys) not used
        codeop.py:4 Imported module (traceback) not used
        fileinput.py:292 Function (input) doesn't require named arguments
        multifile.py:30 Imported module (sys) not used 
        pipes.py:62 Imported module (sys) not used
        urllib.py:598 Function (quote) doesn't require named arguments
        urllib.py:611 Function (quote) doesn't require named arguments
        string.py:190 Variable (_StringType) not used
        tabnanny.py:15 Imported module (string) not used
                        imported again @ 241 and used there

    ### Errors:
        audiodev.py:214 No global (BUFFERSIZE) found
        bdb.py:111 No method (do_clear) found
        chunk.py:109 No attribute (chunk_size) found
			should be chunksize
        locale.py:253 No global (l) found
        netrc.py:13 No global (file) found
        pydoc.py:1070 No global (DocImportError) found
        pydoc.py:1070 No global (filename) found

PyChecker is available on Source Forge:
    web page:		http://pychecker.sourceforge.net/
    project page:	http://sourceforge.net/projects/pychecker/

Enjoy!  Feedback is greatly appreciated.