Tornado и Python 3.x

Мне действительно нравится Tornado, и я бы хотел использовать его с Python 3, хотя он написан для версий 2.5 и 2.6 Python.

К сожалению, похоже, что источник проекта не поставляется с набором тестов. Если я правильно понял, что WSGI-часть его будет не так легко переносить, поскольку она не готова для Python 3 еще (?), но меня скорее интересуют функции асинхронного Tornado, поэтому совместимость WSGI не является моей главной задачей, даже если это будет хорошо.

В принципе, я хотел бы знать, что посмотреть/обратить внимание при попытке порт или уже есть порты/вилки (я не смог найти никакого использования google или браузера github, хотя я мог что-то пропустить).

Ответ 2

Программное обеспечение без достойного набора тестов устаревшее программное обеспечение - даже если оно было выпущено вчера! -) - поэтому первый важный шаг - начать создание набора тестов; Я рекомендую книгу "Перья" в URL-адресе, но вы можете начать с этого PDF, который является эссе, также Перьями, предшествующими книге, и суммируя один книги основных основных идей и практик.

Как только у вас есть начало тестового набора, запустите его с помощью Python 2.6 и флага -3, чтобы предупредить вас о вещах 2to3, которые могут наткнуться; после того, как они исправлены, пришло время попробовать 2to3 и попробовать тестовый набор с Python 3. Вам, несомненно, придется продолжать наращивать набор тестов, когда вы идете, и я рекомендую регулярно представлять все улучшения в восходящем Tornado проект с открытым исходным кодом - те тесты будут полезны кому-либо, кому необходимо поддерживать или переносить Tornado, в конце концов, не только для людей, интересующихся Python 3, поэтому, если повезет, вы можете получить последователей и больше и больше участников тестового набора.

Я не могу поверить, что люди выпускают крупные проекты с открытым исходным кодом в 2009 году!!!, без достойных наборов тестов, но я доверяю вам, что это действительно то, что сделали Tornadoers...

Ответ 3

Tornado - хорошая веб-структура над чем-то вроде twisted, но не имеет исправленных ошибок или функций, Я сделал порт для скрутки, который по существу просто удалил код.

Некоторые из этих функций очень важны. Например, если вы выполняете WSGI, вы блокируете неблокирующую веб-инфраструктуру. Плохие вещи произойдут. У Twisted async web framework также есть контейнер WSGI, но он использует deferToThread, чтобы предотвратить его блокирование других запросов. Еще не правильный способ масштабирования приложения, но он разваливается гораздо медленнее.