11
votes

Tornado et Python 3.x

J'aime beaucoup Tornado et je voudrais l'utiliser avec Python 3, bien qu'il soit écrit pour Python Versions 2.5 et 2.6.

Malheureusement, il semble que la source du projet ne vienne pas avec une suite de test. Si je comprends bien, la partie WSGI ne serait pas si facile à porter, car sa spécification n'est pas prête pour Python 3 pourtant (?) , mais je suis plutôt intéressé par les caractéristiques ASYNC de Tornado, la compatibilité de la WSGI n'est donc pas ma principale préoccupation même si ce serait bien.

En gros, j'aimerais savoir quoi regarder / faire attention lorsque vous essayez de porter ou s'il existe déjà des ports / fourches déjà (je n'ai pas pu trouver d'utiliser Google ou naviguer sur GITUB , bien que j'aurais pu manquer quelque chose).


1 commentaires

circuits ( bitbucket.org/prologic/circuits ) a soutenu Python 3 pendant un certain temps et prend en charge 2,6, 2.7, 3.1, 3.2 et 3.3


3 Réponses :


13
votes

logiciel sans une suite de tests décents est Logiciel Legacy - Même si cela a été publié hier! -) - La première étape importante consiste donc à créer une suite de tests; Je recommande le livre de plumes dans l'URL, mais vous pouvez commencer par Ce fichier PDF qui est un essai, aussi par des plumes, précédant le livre et résume l'une des principales idées et pratiques du livre.

Une fois que vous do avez le début d'une suite de test, exécutez-le avec Python 2.6 et un drapeau -3 pour vous avertir des objets 2to3 peut truquer; Une fois ceux qui sont fixés, il est temps d'essayer 2to3 et d'essayer la suite de tests avec Python 3. Vous devez sans doute continuer à renforcer la suite de tests que vous allez, et je recommande de soumettre régulièrement tout le Améliorations apportées au projet Open Source de Tornado en amont - Ces tests seront utiles à quiconque qui a besoin de maintenir ou de porter Tornado, après tout, pas seulement aux personnes intéressées par Python 3, donc, avec chance, vous pourrait gagner des adeptes et de plus en plus de contributeurs à la suite de tests.

Je ne peux pas croire que les gens libèrent des grands projets open source, en 2009 !!!, sans suites de test décents, mais je vous fais confiance à ce que c'est bien ce que les tornadoires ont fait ...


3 commentaires

Bonnes commentaires Alex: C'est une honte parce que le code de la tornade est très propre, je fais de jouer avec elle ces derniers temps. Drôle qu'il a été construit par l'équipe qui gère l'un des plus grands sites Web de la planète aujourd'hui et qu'ils ne pensaient pas à écrire des tests! +1


@jkp, ou peut-être qu'ils ont une suite de test en interne, mais préfèrent ne pas libérer cela que cela révèle des informations internes, par exemple. L'existence d'une infrastructure de test super-duper pouvant donner un avantage concurrentiel - dans un tel cas, ce serait un compromis compréhensible (libérer le code lui-même mais pas les tests - mieux que de ne rien libérer, après tout! -).


Ou la suite de tests et / ou son harnais sont si profondément associés à une pile d'autres infrastructures Facebook qu'elles ne pouvaient pas justifier l'effort dans la fourniture d'une suite de tests sanitisés.



4
votes

Tornado est un bon cadre Web sur quelque chose qui ressemble à torsadé , mais n'a pas de bug de torsadée corrections ou fonctionnalités. Je l'ai fait un port à tordu A pendant le dos essentiellement supprimé le code .

Certaines de ces fonctionnalités sont très importantes. Par exemple, si vous faites WSGI, vous bloquez un cadre Web non bloquant. De mauvaises choses vont arriver. ASYNC WEB Framework a également un conteneur WSGI, mais il utilise defertothread pour empêcher de bloquer d'autres demandes. Néanmoins pas la bonne façon d'accabler une application, mais elle tombe beaucoup plus lentement.


0 commentaires

25
votes

Tout d'abord, je veux m'excuser pour une réponse à un sujet obsolète, Mais une fois que j'ai trouvé ce sujet via Google, je souhaite mettre à jour des informations importantes!

Dans la Tornado 2.0 ajoute la prise en charge de Python 3.2!

https://github.com/facebook/tornado/blob/master/ setup.py

http://groups.google.com/group/python- Tornado / Browse_thread / Thread / 69415C13D129578B


1 commentaires

C'est exactement pourquoi c'est mieux que les forums. Le sujet n'est pas obsolète, vous pouvez simplement les mettre à jour. Une fois 2.0 est publié, la question elle-même devrait être mise à jour pour noter cela.