Python 3.5 a introduit des coroutines avec une syntaxe async et wait. Les spécifications à ce sujet peuvent être lues dans PEP 492 .
Y a-t-il des plans pour soutenir cela? En raison des retards du réseau ou des connexions lentes, il serait judicieux de faire des requêtes http asynchrones.
@screendriver À l'heure actuelle, il n'est pas prévu de prendre en charge l'async et l'attente. Ce n'est pas parce qu'ils ne sont pas une bonne idée : ils le sont. C'est parce que leur utilisation nécessite des changements de code assez importants.
À l'heure actuelle, les requêtes sont une bibliothèque purement synchrone qui, au bas de sa pile, utilise httplib
pour envoyer et recevoir des données. Nous ne pouvons pas passer à un modèle asynchrone à moins de remplacer httplib. Le mieux que nous puissions faire est de fournir un raccourci pour exécuter une requête dans un thread, mais asyncio a déjà un tel raccourci, donc je ne pense pas que ce serait utile.
En ce moment, je regarde tranquillement si nous pouvons réécrire les requêtes pour fonctionner aussi bien dans un environnement synchrone que dans un environnement asynchrone. Cependant, la réalité est que cela représentera beaucoup de travail, impliquant la réécriture d'une grande partie de notre pile, et peut ne pas se produire avant de nombreuses années, voire jamais.
Commentaire le plus utile
@screendriver À l'heure actuelle, il n'est pas prévu de prendre en charge l'async et l'attente. Ce n'est pas parce qu'ils ne sont pas une bonne idée : ils le sont. C'est parce que leur utilisation nécessite des changements de code assez importants.
À l'heure actuelle, les requêtes sont une bibliothèque purement synchrone qui, au bas de sa pile, utilise
httplib
pour envoyer et recevoir des données. Nous ne pouvons pas passer à un modèle asynchrone à moins de remplacer httplib. Le mieux que nous puissions faire est de fournir un raccourci pour exécuter une requête dans un thread, mais asyncio a déjà un tel raccourci, donc je ne pense pas que ce serait utile.En ce moment, je regarde tranquillement si nous pouvons réécrire les requêtes pour fonctionner aussi bien dans un environnement synchrone que dans un environnement asynchrone. Cependant, la réalité est que cela représentera beaucoup de travail, impliquant la réécriture d'une grande partie de notre pile, et peut ne pas se produire avant de nombreuses années, voire jamais.