What’s new in Tornado 6.0

Mar 1, 2019

Backwards-incompatible changes

  • 不再支持Python 2.7和3.4; 支持的最低Python版本是3.5.2.

  • Tornado 5.1中不推荐使用的API已被删除. 这包括tornado.stack_context模块和整个包中的大多数callback参数. 在Tornado 5.1中DeprecationWarning时,所有已删除的API都会发出DeprecationWarning ,因此,使用-Wd Python命令行标志或环境变量PYTHONWARNINGS=d运行应用程序时,应告诉您应用程序是否已准备好移至Tornado 6.0.

  • .WebSocketHandler.get现在是一个协程,必须在任何覆盖此方法的子类中进行相应调用(但请注意,不建议覆盖get ;应改用prepareopen ).

General changes

  • 龙卷风现在包括与mypy兼容的类型注释. 这些注释将在使用mypy对应用程序进行类型检查时使用,并且可能在编辑器和其他工具中可用.

  • 龙卷风现在在内部使用本地协程,从而提高了性能.

tornado.auth

  • 此程序包中的所有callback参数均已删除. 请改用协程接口.

  • OAuthMixin._oauth_get_user方法已被删除. 改写_oauth_get_user_future .

tornado.concurrent

tornado.gen

  • 该模块的某些较旧部分已被删除. 这包括engineYieldPointCallbackWaitWaitAllMultiYieldPointTask .

  • @gen.coroutine装饰的函数不再接受callback参数.

tornado.httpclient

  • raise_error=False的行为已更改. 现在仅抑制由于非200状态代码的完整响应引起的错误(以前,它抑制了所有错误).

  • AsyncHTTPClient.fetchcallback参数已被删除.

tornado.httputil

  • HTTPServerRequest.write已被删除. 请改用request.connection方法.

  • 现在,无法识别的Content-Encoding值仅记录本来会尝试解析的内容类型的警告.

tornado.ioloop

  • IOLoop.set_blocking_signal_thresholdIOLoop.set_blocking_log_thresholdIOLoop.log_stackIOLoop.handle_callback_exception已删除.

  • 改进了IOLoop.add_callback性能.

tornado.iostream

tornado.log

  • 现在,此模块打开的日志文件已显式设置为UTF-8编码.

tornado.netutil

  • 现在,按地址族对getaddrinfo的结果进行排序,以避免部分失败和死锁.

tornado.platform.twisted

  • TornadoReactorTwistedIOLoop已被删除.

tornado.simple_httpclient

  • 现在,默认的HTTP客户端支持network_interface请求参数,以指定连接的源IP.

  • 如果服务器返回不带Location标头的3xx响应代码,则直接引发或返回响应,而不是尝试并无法遵循重定向.

  • 跟随重定向时,除POST之外的方法将不再转换为GET请求. 在这方面,现在将301(永久)重定向与302(临时)重定向和303(其他)重定向相同.

  • 跟随重定向现在可以与body_producer一起body_producer .

tornado.stack_context

  • tornado.stack_context模块已被删除.

tornado.tcpserver

tornado.testing

  • 现在, AsyncHTTPTestCasetearDown期间删除对Application所有引用,从而可以更快地回收其内存.

  • 现在, AsyncTestCase取消了tearDown中的所有挂起的协程,以减少来自python运行时的有关未等待的协程的警告. 请注意,这可能会导致asyncio.CancelledError记录在其他位置. 预期在测试关闭时运行的协程可能需要捕获此异常.

tornado.web

  • asynchronous装饰器已被删除.

  • RequestHandler.flushcallback参数已删除.

  • StaticFileHandler now supports large negative values for the Range header and returns an appropriate error for end > start.

  • 现在可以在xsrf_cookie_kwargs设置expires_days .

tornado.websocket

  • 现在,在连接关闭时发送的Ping和其他消息将被静默删除,而不是记录异常.

  • 现在,当此方法是协程时,可以正确捕获open()引发的错误.

tornado.wsgi

  • WSGIApplicationWSGIAdapter已被删除.