Comments on: Go to (in asyncio) considered harmful http://sametmax.com/go-to-in-asyncio-considered-harmful/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: NicK http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-196548 Thu, 12 Jul 2018 13:31:09 +0000 http://sametmax.com/?p=24534#comment-196548 “Tous les devs Python ne connaissent pas asyncio. Parmi ceux qui connaissent asyncio, une petite partie comprend comme ça marche.

Dans ce lot rikiki, un pouillième sait que c’est la bonne pratique.”

Ben oui… Faut avoir le besoin d’utiliser cette lib.
Continue mon brave, je sors de mon ignorance pythonesque crasse grâce à toi.
(ironie)(pas taper)

]]>
By: aa http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-196174 Fri, 29 Jun 2018 08:23:55 +0000 http://sametmax.com/?p=24534#comment-196174 ainsi que de l’une de l’autres -> ainsi que de l’une de l’autre

avait était faite -> avait été faite

gotise -> bêtise ???

tache(s) -> tâche(s) https://www.projet-voltaire.fr/regles-orthographe/tache-ou-tache/

]]>
By: Romain http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-196171 Fri, 29 Jun 2018 08:02:20 +0000 http://sametmax.com/?p=24534#comment-196171 Du coups j’ai réouvert un vieux script à moi et je vois que j’avais fait des ensure_future de partout ! Je n’avais pas pigé que tu pouvais envoyer directement des coroutines à asyncio.gather (j’ai dû lire la doc les yeux fermés…).

Bref, faire ce que tu veux proprement avec asyncio, c’est compliqué.

Je suis d’accord avec toi que gather n’est pas suffisamment mis en avant dans la doc alors que c’est exactement la fonction que tu cherches quand tu veux jouer avec asyncio !

]]>
By: Iwan http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195756 Wed, 13 Jun 2018 11:49:13 +0000 http://sametmax.com/?p=24534#comment-195756 La librairie curio implémente le support asynchrone d’une meilleure façon AMHA. Il y a un point d’entrée: run(coroutine), tout le reste est implémenté avec await. Par exemple au lieu de gather, il y a une fonction spawn pour lancer une nouvelle tâche, donc:

gather(coro1(), coro2())

Devient:

task1 = await spawn(coro1)

task2 = await spawn(coro2)

await task1

await task2

]]>
By: Sam http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195741 Tue, 12 Jun 2018 08:23:11 +0000 http://sametmax.com/?p=24534#comment-195741 @Linekio: on a les promesses du JS. On les appelle futures, c’est tout. C’est une API bien inférieure à async / await (on doit créer des callbacks et les attacher explicitement au lieu d’avoir un code impératif), et ça ne résout pas du tout le problème dont s’occupe les nurseries. Un callback dans une promise est un goto. Par ailleurs, la manière dont tu utilise asyncio ne fait que usage des threads, donc ça veut dire que tu ne profites pas du tout de l’infrastructure pour le reseau.

Mais je comprends pourquoi. Si tu fais une recherche sur comment faire une requête HTTP avec javascript, la réponse est simple et direct. Si tu fais la même chose avec Python, soit tu as requests qui est bloquant, soit tu te lances dans asyncio qui est pas clair.

]]>
By: Sam http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195740 Tue, 12 Jun 2018 08:11:37 +0000 http://sametmax.com/?p=24534#comment-195740 Pas mal du tout. Après ça semble souffrir du même bug que mon POC au niveau des tâches attachées au scope parent.

Mais c’est une bonne base pour rajouter les cancel de scopes, les timeout, les concurrency limits, les warnings des ensure_futures orphelins, etc. Keep it up.

]]>
By: Ovv http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195739 Tue, 12 Jun 2018 06:42:30 +0000 http://sametmax.com/?p=24534#comment-195739 Une connaissance vient de sortir: https://github.com/malinoff/aionursery. Je n’ai pas fait de test en profondeur mais ça à l’air de faire le boulot.

]]>
By: Stéphane http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195732 Mon, 11 Jun 2018 21:08:57 +0000 http://sametmax.com/?p=24534#comment-195732 Une proposition et uen correction :

(que de toute façon personne ne soupçonne l’existence) -> (dont personne ne soupçonne de toute façon)

un moyen de gérer tâches -> un moyen de gérer des tâches

]]>
By: Linekio http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195727 Mon, 11 Jun 2018 12:59:40 +0000 http://sametmax.com/?p=24534#comment-195727 Perso je n’utilise asyncio que comme ça:

async def something(loop):

f1 = loop.run_in_executor(None, foo)

f2 = loop.run_in_executor(None, bar)

await f1

await f2

loop = asyncio.get_event_loop()

loop.run_until_complete(something(loop))

Mais c’est parce que je ne comprends que ça.

Pourquoi ce n’est pas possible en python d’avoir un truc similaire aux promises du JS ?

]]>
By: Sam http://sametmax.com/go-to-in-asyncio-considered-harmful/#comment-195698 Sat, 09 Jun 2018 14:27:33 +0000 http://sametmax.com/?p=24534#comment-195698 @Debnet : Quand j’aurai fini le dossier sur les tests

@herissondemer : demonstration accomplie.

@goldy: je pense que faire une bonne surcouche pour asyncio est aussi un truc intéressant à envisager. Trio est un bon concept, et son design est frachement sexy, mais asyncio est dans la stdlib et à déjà un gros ecosystème donc ça serait cool si on pouvait continuer à l’utiliser.

]]>