Guido van Rossum wrote:
In the yield-from <generator> world we could spell it that way too (i.e. yield, not yield from), or we could make it so that we can write yield from <future>, or perhaps we need a helper call: yield from wait(<future>) or maybe a method on the Future class (since it is our own), yield from <future>.wait().
This will depend to some extent on whether Futures are considered part of the tasks layer or part of the callbacks layer. If they're considered part of the callbacks layer, they shouldn't have any methods that must be called with yield-from.
Final remark: I keep wondering if it's better to try and stay "pure" in the public API and use only yield from, plus some helpers like spawn(), join() and par(), or if a decent, pragmatic public API can offer a combination. I worry that most users will have a hard time remembering when to use yield and when yield from.
As I've said, I think it would be better to have only 'yield from' calls in the public API, because it gives the implementation the greatest freedom. -- Greg