Escriu per cercar…

AnyIO

AnyIO te permite escribir código asíncrono en Python que funciona con diferentes backends asíncronos.

S'ensenya a
ProgramacióBases de dadesDAW-BIOProgramació d'intel·ligència artificialConcurrència i consum de serveis remotsIABD

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.

ps
uv init anyio-basic
cd anyio-basic
uv add anyio

Uso básico

Creemos un ejemplo sencillo.

Crea un archivo llamado task.py y añade este código:

python
src/task.py
import anyio

async def do_task():
    print("Start ... ", end="")
    await anyio.sleep(2)
    print("end!")


async def main():
    await do_task()

if __name__ == "__main__":
    anyio.run(main)

Cuando trabajas con código asíncrono, normalmente usas las palabras clave async y await.

Las reglas principales son que:

  • Solo puedes usar await dentro de funciones async.
  • Para llamar a una función async, necesitas usar await delante 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:

python
src/task.py
async def do_task():
    print("Start ... ", end="")
    await anyio.sleep(2)
    print("end!")

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():

python
src/task.py
if __name__ == "__main__":
    anyio.run(main)

Estàs llegint una vista prèvia.

Inicia la sessió amb Google per llegir la pàgina sencera.

Inicia la sessió amb Google

Només et demanarem que acceptis les condicions del servei.