In regards to my previous example, the lambda function magic is unnecessary, instead of:
gobject.idle_add(lambda iter=animate(): iter.next())
It is simply adequate to do:
gobject.idle_add(animate().next)
Which is much simpler. My apologies for over coding the solution.
– Nathaniel