tools to catch AttributeError and TypeError in python code?

John Reiser jreiser at bitwagon.com
Mon Oct 22 15:25:31 UTC 2012


What is the state of software tools to help catch and prevent
AttributeError and TypeError in python code?  These two classes
of errors occur often in the bugzilla reports for anaconda
(recently:  https://bugzilla.redhat.com/show_bug.cgi?id=868707 ).
I'd like to see fewer AttributeError and TypeError.

Because new attributes and types may be created at run time, in general
errors may be even harder to find than in languages with static typing.
Yet for most python code the set of types and attributes is semi-fixed.
There are no changes at run time except due to importing modules
which were created long ago.  During development, the set of types and
attributes changes only in bursts, and often the bursts are weeks apart.

The tools for python that I found by searching the web [0][1] seemed to be
oriented more towards syntax and style, and not including AttributeError
and TypeError.  Nothing even came close to the depth and thoroughness
of BEAM [2] or Coverity [3] for C/C++.  Help?

-----
[0] google:  python code checker
[1] http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#Python
   pychecker
   pylint
[2] http://alexandria.tue.nl/extra2/afstversl/E/523798.pdf
   (IBM "BEAM" checker [Bugs, Errors, And Mistakes]; Guido Volleberg, 1999)
   *very* good: finds and prints an execution path which leads to null-pointer
   errors in C and C++; includes call+return, loop+exit, conditionals, etc.
   Notably helpful in the development of valgrind itself.
[3] http://www.coverity.com/products/quality-advisor.html

-- 


More information about the devel mailing list