A python linter/ static checker that can examine branches
<p>I am specifically worried about:</p>

<p><strong>uninitialized values due to branch execution:</strong> I know in Java there is <code>variable a might not have been initialized</code> when there are control flows which exist which may cause the variable not to initialize.</p>

<p><strong>return value magic:</strong> Depending on branches, the method may return a value or inadvertently returns nothing as the branch dont reach a return.</p>

<p>Is there a tool that can examine whether the branches are correct? I know it needs a static typed language to do exactly that, but is there an equivalent for Python?</p>
