Quiero refactorizar mi código de sync a async . Yo uso Python y FastAPI. Uso el método que llama a la función async en Enumaration.
Por ejemplo:
from enum import Enum from app.story import get_story StoriesEnum = Enum( "StoriesEnum", {story: story for story in get_story.story_list}, ) get_story es una función async que devuelve la clase Story y tiene story_list .
¿Cómo puedo await el get_story.story_list ?
Lo intenté:
sin resultado exitoso. No funcionan porque await está fuera de la función async .
Según la documentación :
Es posible que haya notado que
awaitsolo se puede usar dentro de las funciones definidas conasync def.Pero al mismo tiempo, las funciones definidas con
async deftienen que ser "esperadas". Por lo tanto, las funciones conasync defsolo se pueden llamar dentro de funciones definidas conasync deftambién.
Por lo tanto, lo que podrías hacer es:
import asyncio async def go(): return Enum("StoriesEnum", {s:s for s in (await get_story()).story_list.value}) StoriesEnum = asyncio.run(go()) print({e:e.value for e in StoriesEnum})PD Sin embargo, realmente ayudaría si proporcionara un ejemplo reproducible mínimo .