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

Mark Shannon mark at hotpy.org
Mon Nov 17 16:04:41 CET 2014


Hi,

I think this might be a bit off-topic for this mailing list,
code-quality at python.org is the place for discussing static analysis tools.

Although if anyone does have any comments on any particular checks
they would like, I would be interested as well.

Cheers,
Mark.


On 17/11/14 14:49, 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.
>
> My preliminary list of Python checks is quite rudimentary, but maybe
> could serve as a discussion starter:
>
> * Proper Unicode handling (for 2.x)
>    - encode() is not called on str object
>    - decode() is not called on unicode object
> * Check for integer division by zero
> * Check for None object dereferences
>
> Thanks a lot,
> Stefan Bucur
>
> [1] http://clang-analyzer.llvm.org/available_checks.html
>
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/mark%40hotpy.org
>


More information about the Python-Dev mailing list