To summarize, while switching religions:
"The Tao that can be expressed is not the eternal Tao".
But if you're going to try to express the Zen of Python, you can do a hell of a lot better than this.
i dunno if this is valid python but it demonstrates the idea
identify_vertebrate(animal) if animal.is_vertebrate() \
doSomething( if( is_vertebrate(animal)
(doSomething (if (is_vertebrate animal)
Conclusion: for Hunter Blanks, SQLAlchemy can never win.
I wouldn't be surprised if many people criticizing #3 had no practical experience with NoSQL and the benefits brought by its lack of baggage.
Folks seem to have found a lot of implicit meaning and bugs in what was, at its grandest, a 5 minute talk at RedSnake Philly 2011. I'll just make two comments:
1) This in now up on GitHub at:
so if you feel strongly about making this better, you should send me a pull request.
2) People seem to have decided that the top (or the bottom?) of every example is the more pythonic one. I suppose I should have kept a consistent order, but, as I noted in the initial HN thread, that just wasn't necessary since this was delivered in the context of a talk.
i = 0
""" Increments a count and returns it. """
i += 1
I'd use itertools.count().
fs = 
for i in range(5):
gs = 
for i in range(5):
Anyway, that's all I meant to point out. I misinterpreted your reference to `nonlocal`, which I'm not very familiar with as I don't really use Python 3 much yet. So sorry for my nonsensical reply.
 By "properly" I mean as closures work in pure functional languages, where they originated. I realize a programmer who understands Python's data model shouldn't generally expect them to work that way in Python.
My answers above were really short because I was on a tablet. May have come across as curt.
from menagerie.models import cat as cat_models
from menagerie.cat import models as cat_models
from menagerie.dog import models as dog_models
from menagerie.mouse import models as mouse_models
from menagerie.models import cat, dog, mouse