Ah, that’s more technical than Bill’s piece was aiming, I believe.
Re States:
this table explains them all, but not the mechanisms behind tracking. The
API docs show the source code if you expand them (or you could jump into the repo). I don’t know of a diagram/post on the topic.
On control structures, most anything you can do in Python is supported, I believe. Looping and branching are the two that come to mind. So if and if else, while, for, loops are all fine.
Not exactly what you’re asking, but returning a generator from a task fails at the moment due to an upstream dependency issue with AnyIO that should be resolved when they merge a PR. See discussion
here.