什么新的龙卷风6.0

2020年10月30日

折旧通知

  • 这是Tornado支持Python3.5的最后一个版本。未来的版本将需要Python3.6或更高版本。

一般变化

  • Windows支持已得到改进。Tornado现在与proactor事件循环(Python3.8中的默认值)兼容,它自动返回到在第二个线程中运行选择器。这意味着不再需要显式地配置选择器事件循环,尽管这样做可以提高性能。这并没有改变这样一个事实,即Tornado在Windows上的可伸缩性明显低于其他平台。

  • 现在为Windows、MacOS和Linux(amd64和arm64)提供了二进制控制盘。

tornado.gen

  • coroutine 现在对Python3.7+有更好的支持 contextvars 模块。特别值得一提的是, ContextVar.reset 方法现在受支持。

tornado.http1connection

  • HEAD 对使用分块编码的处理程序的请求不再产生格式错误的输出。

  • 某种畸形 gzip 数据不再导致无限循环。

tornado.httpclient

  • 设置 decompress_response=False 现在可以正确使用 curl_httpclient .

  • 混合使用和不使用代理的请求在 curl_httpclient (假设pycurl的版本足够新)。

  • 默认设置 User-AgentTornado/$VERSION 现在使用,如果 user_agent 未指定参数。

  • 在303次改道后, tornado.simple_httpclient 总是使用 GET . 以前这将使用 GET 如果原始请求是 POST 否则将重用原始请求方法。为 curl_httpclient ,行为取决于的版本 libcurl (最新版本使用 GET 303后,无论原始方法如何)。

  • 设置 request_timeout 和/或 connect_timeout 现在支持归零以禁用超时。

tornado.httputil

tornado.iostream

  • ssl.CertificateError 在SSL握手过程中,现在可以正确处理。

  • 当流关闭时解析的读取现在被正确处理。

tornado.log

  • 启用彩色日志记录时, logging.CRITICAL 消息现在被识别并被涂成洋红色。

tornado.netutil

  • EADDRNOTAVAIL 现在绑定到时被忽略 localhost 使用IPv6。这个错误在docker中很常见。

tornado.platform.asyncio

  • AnyThreadEventLoopPolicy 现在还要为这些线程配置一个选择器事件循环(proactor事件循环只在主线程上工作)

tornado.platform.auto

  • 这个 set_close_exec 函数已被删除。

tornado.testing

  • ExpectLog 现在有一个 level 参数以确保启用给定的日志级别。

tornado.web

  • RedirectHandler.get 现在接受关键字参数。

  • 当发送304个响应时,更多的头(包括 Allow )现在保存了下来。

  • reverse_url 正确处理正则表达式路由中的转义字符。

  • 违约 Etag 现在用SHA-512而不是MD5生成报头。

tornado.websocket

  • 这个 ping_interval 现在连接关闭时计时器停止。

  • websocket_connect 现在在遇到重定向而不是挂起时引发错误。