title: Static code analysis in Python?
body: <p>Which helpful static code analysis can you recommend for Python. I believe they are useful for refactoring code.
  I know</p>
  
  <ul>
  <li>snakefood for module dependencies</li>
  <li>pycallgraph for dynamic call graphs</li>
  <li>pylint for bugs</li>
  </ul>
  
  <p>Are there static call analyzers? If I wanted to program a custom one, which would be the easiest way?</p>
  
  <p>What other type of static code checks can you think of? Or maybe even some Python magic like ABCs?</p>
  
  <p>EDIT: I've found that either using <a href="http://docs.python.org/3.3/library/ast.html" rel="nofollow">http://docs.python.org/3.3/library/ast.html</a> or maybe even <a href="http://www.astroid.org/" rel="nofollow">http://www.astroid.org/</a> can be used to program some custom parser. Then one can use graphviz to visualize or even PlantUML for UML graphs.</p>