Tornado 4.3的新功能

2015年11月6日

集锦

  • 支持Python3.5中的新异步/等待关键字。在大多数情况下, async def can be used in place of the @gen.coroutine decorator. Inside a function defined with async def, use await instead of yield to wait on an asynchronous operation. Coroutines defined with async/await will be faster than those defined with @gen.coroutine and yield, but do not support some features including Callback/Wait 或者能够产生一个扭曲的 Deferred 。看见 the users' guide 想要更多。

  • 在旧版本的python中使用cython编译时,async/await关键字也可用。

折旧通知

  • 这将是最后一个支持Python2.6或3.2的Tornado版本。请注意,Pypy3将继续受到支持,即使它实现了Python3.2和3.3功能的混合。

安装

  • 龙卷风有几个新的依赖关系: ordereddict 在Python 2.6上, singledispatch 在3.4之前的所有Python版本上(这是Tornado以前版本中的可选依赖项,现在是强制的),以及 backports_abc>=0.4 在3.5之前的所有版本上。使用安装时将自动安装这些依赖项 pipsetup.py install . 在Google应用程序引擎上运行时,不需要这些依赖项。

  • 在Windows(32位和64位)上为python 3.5提供二进制轮子。

tornado.auth

  • 新方法 OAuth2Mixin.oauth2_request 可用于通过访问令牌进行身份验证请求。

  • 现在可以兼容用cython编译的回调。

tornado.autoreload

  • 修复了autoreload命令行包装器的一个问题,在这个问题中,导入将被错误地解释为相对导入。

tornado.curl_httpclient

  • 修复了多行标题的分析。

  • allow_nonstandard_methods=True 现在绕过身体健康检查,就像在 simple_httpclient .

  • 这个 PATCH 方法现在允许没有 allow_nonstandard_methods=True .

tornado.gen

  • WaitIterator 现在支持 async for 关于python 3.5的声明。

  • @gen.coroutine 可以应用于用cython编译的函数。在3.5之前的python版本上, backports_abc 必须为此功能安装程序包。

  • Multimulti_future 已弃用,并替换为统一函数 multi .

tornado.httpclient

tornado.httpserver

  • 同时包含这两者的请求 Content-LengthTransfer-Encoding 将被视为错误。

tornado.httputil

tornado.ioloop

  • IOLoop(make_current=True) 现在按预期工作,而不是提出例外。

  • Twisted和Asyncio IOLoop实现现已清除 current() 当他们离开时,就像标准的IOLoop。

  • IOLoop.add_callback 在单线程情况下更快。

  • IOLoop.add_callback 在已关闭的IOLoop上调用时不再引发错误,但不会调用回调。

tornado.iostream

  • 连体衣风格的用法 IOStream 现在将大多数错误转换为 StreamClosedError 它可以减少来自应用程序控制之外的异常(尤其是SSL错误)的日志噪声。

  • StreamClosedError 现在有一个 real_error 指示流关闭原因的属性。它和 error 属性 IOStream 但可能比 IOStream 本身。

  • 改进的错误处理 read_until_close .

  • 当对SSL服务器进行端口扫描时,日志记录的噪声较小。

  • EINTR 现在对所有读取进行处理。

tornado.locale

tornado.locks

  • LockSemaphore 现在支持 async with 关于python 3.5的声明。

tornado.log

  • 新的基于时间的日志旋转模式可用于 --log_rotate_mode=time--log-rotate-whenlog-rotate-interval .

tornado.netutil

  • bind_sockets 现在支持 SO_REUSEPORTreuse_port=True 争论。

tornado.options

  • 破折号和下划线现在在选项名称中完全可以互换。

tornado.queues

  • Queue 现在支持 async for 关于python 3.5的声明。

tornado.simple_httpclient

  • 当跟踪重定向时, streaming_callbackheader_callback 将不再在重定向响应上运行(仅限最终的非重定向)。

  • 包含两者的响应 Content-LengthTransfer-Encoding 将被视为错误。

tornado.template

  • tornado.template.ParseError 现在除了行号之外还包括文件名。

  • 空白处理变得更加可配置。这个 Loader 构造函数现在有一个 whitespace 争论,有一个新的 template_whitespace Application 设置,有一个新的 {{% whitespace %}} 模板指令。所有这些选项都采用在 tornado.template.filter_whitespace 功能。默认模式为 single 与先前版本的龙卷风相同。

  • 现在支持非ASCII文件名。

tornado.testing

  • ExpectLog 对象现在有一个布尔值 logged_stack 属性,以便测试是否记录了异常堆栈跟踪。

tornado.web

  • 已删除每个传出头4000字节的硬限制。

  • StaticFileHandler 返回正确的 Content-Type 对于文件与 .gz.bz2.xz 扩展。

  • 小于1000字节的响应将不再被压缩。

  • 默认的gzip压缩级别现在是6(以前是9)。

  • 修正了龙卷风4.2.1的回归 StaticFileHandler 用一个 path 属于 / .

  • tornado.web.HTTPError 现在可以使用 copy 模块。

  • 例外 Finish 现在接受将传递给方法的参数 RequestHandler.finish .

  • 新的 Application 设置 xsrf_cookie_kwargs 可用于设置其他属性,如 securehttponly 在XSRF cookie上。

  • Application.listen 现在返回 HTTPServer 它创造了。

tornado.websocket

  • 修复了启用压缩时连续帧的处理。