Tornado 5.1的新功能

2018年7月12日

折旧通知

  • Tornado6.0将放弃对python 2.7和3.4的支持。支持的最低python版本为3.5.2。

  • 这个 tornado.stack_context 模块已弃用,将在Tornado 6.0中删除。原因是,在存在 async def 本地协程。 ExceptionStackContext 主要是由于协程而过时的。 StackContext 虽然新的 contextvars 包(在python标准库中,从python 3.7开始)可能是另一种选择。

  • 面向回调的代码通常依赖于 ExceptionStackContext 处理错误,防止连接泄漏。为了避免暗中引入细微泄漏的风险(并巩固龙卷风共线模式后的所有界面)。 callback 整个包中的参数已弃用,将在版本6.0中删除。所有具有 callback 移除的参数现在返回 Future 应该用它来代替。

  • 在可能的情况下,当使用这些已弃用的接口时,将发出弃用警告。但是,默认情况下,python不显示取消预测警告。要为Tornado 6.0准备应用程序,请使用 -Wd 参数或设置环境变量 PYTHONWARNINGSd . 如果您的应用程序运行在python 3上时没有警告,那么它应该能够在不中断的情况下移动到tornado 6.0。

tornado.auth

  • OAuthMixin._oauth_get_user_future 现在可能是一个本土的连体衣。

  • 所有 callback 此包中的参数已弃用,将在6.0中删除。而是使用协程接口。

  • 这个 OAuthMixin._oauth_get_user 方法已弃用,将在6.0中删除。重写 _oauth_get_user_future 相反。

tornado.autoreload

  • 如果内部自动加载触发,则现在保留命令行自动加载包装。

  • 当与内部自动加载结合使用时,命令行包装器不再在Windows上启动重复的进程。

tornado.concurrent

  • run_on_executor 现在回报 Future 与兼容的对象 await .

  • 这个 callback 参数 run_on_executor 已弃用,将在6.0中删除。

  • return_future 已弃用,将在6.0中删除。

tornado.gen

  • 此模块的某些旧部分已弃用,将在6.0中删除。这包括 engineYieldPointCallbackWaitWaitAllMultiYieldPointTask .

  • 功能装饰 @gen.coroutine 将不再接受 callback 6.0中的参数。

tornado.httpclient

  • 行为 raise_error=False 正在6.0中更改。目前,它会抑制所有错误;在6.0中,它只会抑制由于完成了包含非200状态代码的响应而引发的错误。

  • 这个 callback 参数 AsyncHTTPClient.fetch 已弃用,将在6.0中删除。

  • tornado.httpclient.HTTPError 已重命名为 HTTPClientError 为了避免代码中的歧义,必须处理 tornado.web.HTTPError . 旧名称保留为别名。

  • tornado.curl_httpclient 现在在用户名和密码参数中支持非ASCII字符。

  • .HTTPResponse.request_time 现在的行为是一致的 simple_httpclientcurl_httpclient ,不包括在 max_clients 两种情况下的队列(以前这一次包括在 simple_httpclient 但排除在 curl_httpclient )在这两种情况下,时间现在都是用一个单调的时钟来计算的。

  • HTTPResponse 现在有一个 start_time 记录挂钟的属性 (time.time )请求开始的时间戳(离开 max_clients 排队(如果适用)。

tornado.httputil

  • parse_multipart_form_data 现在识别RFC2231/5987中的非ASCII文件名 (filename*= )格式。

  • HTTPServerRequest.write 已弃用,将在6.0中删除。使用的方法 request.connection 相反。

  • 格式不正确的HTTP头现在记录的声音更少。

tornado.ioloop

  • PeriodicCallback 现在支持 jitter 参数随机改变超时。

  • IOLoop.set_blocking_signal_thresholdIOLoop.set_blocking_log_thresholdIOLoop.log_stackIOLoop.handle_callback_exception 已弃用,将在6.0中删除。

  • 修正了 KeyError 在里面 IOLoop.close 什么时候? IOLoop 正在多个线程中打开和关闭对象。

tornado.iostream

tornado.netutil

  • 改进了与GNU Hurd的兼容性。

tornado.options

tornado.platform.twisted

  • TornadoReactorTwistedIOLoop 已弃用,将在6.0中删除。相反,Tornado将始终使用Asyncio事件循环,Twisted也可以配置为这样做。

tornado.stack_context

  • 这个 tornado.stack_context 模块已弃用,将在6.0中删除。

tornado.testing

tornado.web

  • 新方法 RequestHandler.detach 可以从没有装饰的方法中使用 @asynchronous (装饰师被要求使用 self.request.connection.detach() .

  • RequestHandler.finishRequestHandler.render 现在回来 Futures 它可以用于等待响应的最后一部分发送到客户机。

  • FallbackHandler 现在电话 on_finish 为了可能覆盖它的子类的利益。

  • 这个 asynchronous decorator已弃用,将在6.0中删除。

  • 这个 callback 参数 RequestHandler.flush 已弃用,将在6.0中删除。

tornado.websocket

tornado.wsgi

  • WSGIApplicationWSGIAdapter 已弃用,将在Tornado 6.0中删除。