> Indent your code blocks with 4 spaces.<p>I had this notion it formerly was 2 spaces (too little, IMH-once-bitten-O). Anyone know when it changed, if it did ?<p>P.S. In <a href="http://groups.google.com/group/django-developers/msg/f6a86d135fb2968f" rel="nofollow">http://groups.google.com/group/django-developers/msg/f6a86d1...</a> , back in Aug.2008, GvR says "Most of it [Google's unpublished internal Python style] is simply PEP-8 with 2-space indents."<p>(I dislike 2 spaces, once bitten by missing an indentation bug. I try to stick to 80 columns - both for print and side-by-side on screen - and think that more than 4 or 5 levels of indentation is "doing it wrong".)
Within each grouping, imports should be sorted lexicographically, ignoring case, according to each module's full package path.<p><pre><code> import foo
from foo import bar
from foo.bar import baz
from foo.bar import Quux
from Foob import ar
</code></pre>
That seems kind of time consuming...
> which should inherit from the built-in Exception class<p>I hate that. should inherit from StandardError IMNSHO. It's a quibble though and a pointless one until the standard library follows that. (which it never will...)<p>> Use the "implicit" false if at all possible.<p>Is so wrong, for the listed caveat reasons and more. It's the opposite of readability to me. Similar issues with the use default iterators. If my loop is expecting a dictionary and to iterate over it's keys I really want the "foo has no method keys" error rather than looping over a list and creating hard to discover/understand bug.