AnyIO
AnyIO te permite escribir código asíncrono en Python que funciona con diferentes backends asíncronos.
Introducción
AnyIO es una librería de redes y concurrencia asíncrona que funciona sobre asyncio o Trio. Implementa la concurrencia estructurada (SC) al estilo de Trio sobre asyncio y funciona en armonía con la SC nativa del propio Trio.
uv init anyio-basic
cd anyio-basic
uv add anyioUso básico
Creemos un ejemplo sencillo.
Crea un archivo llamado task.py y añade este código:
await
await
Cuando trabajas con código asíncrono, normalmente usas las palabras clave async y await.
Las reglas principales son que:
- Solo puedes usar
awaitdentro de funcionesasync. - Para llamar a una función
async, necesitas usarawaitdelante de ella.
En este caso, podemos usar await dentro de main() porque es una función async.
Llamar a funciones asíncronas
La función do_task() también debe declararse con async def para que podamos hacer await de su resultado al llamarla.
do_task() podría estar hablando con una base de datos, llamando a una API, o haciendo alguna otra cosa que necesite esperar algo.
Para este ejemplo, simulamos eso haciendo que do_task() espere 2 segundos:
await
Ejecutar la función main
Como main() es una función async, no podemos llamarla directamente porque no podemos hacer await de ella.
En su lugar, la llamamos con anyio.run():
Estàs llegint una vista prèvia.
Inicia la sessió amb Google per llegir la pàgina sencera.
Inicia la sessió amb GoogleNomés et demanarem que acceptis les condicions del servei.