[Python-Dev] Static checker for common Python programming errors

Terry Reedy tjreedy at udel.edu
Tue Nov 18 02:21:13 CET 2014


On 11/17/2014 9:49 AM, Stefan Bucur wrote:
> I'm developing a Python static analysis tool that flags common
> programming errors in Python programs. The tool is meant to complement
> other tools like Pylint (which perform checks at lexical and syntactic
> level) by going deeper with the code analysis and keeping track of the
> possible control flow paths in the program (path-sensitive analysis).
>
> For instance, a path-sensitive analysis detects that the following
> snippet of code would raise an AttributeError exception:
>
> if object is None: # If the True branch is taken, we know the object is None
>    object.doSomething() # ... so this statement would always fail
>
> I'm writing first to the Python developers themselves to ask, in their
> experience, what common pitfalls in the language & its standard library
> such a static checker should look for. For instance, here [1] is a list
> of static checks for the C++ language, as part of the Clang static
> analyzer project.

You could also a) ask on python-list (new thread), or scan python 
questions on StackOverflow.  Todays's example: "Why does my function 
return None?"  Because there is no return statement.  Perhaps current 
checkers can note that, but what about if some branches have a return 
and others do not?  That is a likely bug.

-- 
Terry Jan Reedy



More information about the Python-Dev mailing list