Como criar um gerador assíncrono em Python?

Estou tentando reescrever esse código Python2.7 para a nova ordem mundial assíncrona:

def get_api_results(func, iterable):
    pool = multiprocessing.Pool(5)
    for res in pool.map(func, iterable):
        yield res

map() blocos até que todos os resultados tenham sido computados, então estou tentando reescrever isso como uma implementação assíncrona que produzirá resultados assim que estiverem prontos. Gostarmap(), os valores de retorno devem ser retornados na mesma ordem queiterable. Eu tentei isso (eu precisorequests devido a requisitos de autenticação herdados):

import requests

def get(i):
    r = requests.get('https://example.com/api/items/%s' % i)
    return i, r.json()

async def get_api_results():
    loop = asyncio.get_event_loop()
    futures = []
    for n in range(1, 11):
        futures.append(loop.run_in_executor(None, get, n))
    async for f in futures:
        k, v = await f
        yield k, v

for r in get_api_results():
    print(r)

mas com o Python 3.6 eu estou recebendo:

  File "scratch.py", line 16, in <module>
    for r in get_api_results():
TypeError: 'async_generator' object is not iterable

Como posso fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion