What’s new in Tornado 3.1

Jun 15, 2013

Multiple modules

  • 在整个软件包中,许多参考周期已经分解,从而可以在CPython上更有效地进行垃圾回收.

  • 当打开并立即关闭连接(即端口扫描)或其他与关闭的连接有关的情况时,使某些日志消息静音.

  • 各种小的加速: HTTPHeaders大小写规范化, UIModule代理对象,预编译一些正则表达式.

tornado.auth

  • OAuthMixin始终根据规范要求在其请求中发送oauth_version=1.0 .

  • FacebookGraphMixin现在在facebook_request使用self._FACEBOOK_BASE_URL允许覆盖基本URL.

  • 现在, tornado.auth mixin类中的authenticate_redirectauthorize_redirect方法都将返回Future. 这些方法在OAuthMixin和派生类中是异步的,尽管它们没有回调. 如果从用gen.coroutine装饰的函数(但不是gen.engine )调用它们,则必须产生Future这些方法返回.

  • TwitterMixin现在使用/account/verify_credentials来获取有关已登录用户的信息,这对于更改屏幕名称更为可靠.

  • demos目录(在源代码分发中)具有一个使用TwitterMixin的新twitter演示.

tornado.escape

tornado.gen

  • 修复了tornado.gen协程长链潜在的内存泄漏.

tornado.httpclient

  • tornado.httpclient.HTTPRequest接受一个新的参数auth_mode ,它可以是basic参数,也可以是digest . 摘要认证仅受tornado.curl_httpclient支持.

  • tornado.curl_httpclient不再进入时pycurl返回一个负的超时无限循环.

  • curl_httpclient now supports the PATCH and OPTIONS methods without the use of allow_nonstandard_methods=True.

  • 解决了libcurl中的一类错误,这些错误IOLoop.update_handler在各种情况下(包括摘要身份验证和袜子代理)导致IOLoop.update_handler错误.

  • The TCP_NODELAY flag is now set when appropriate in simple_httpclient.

  • simple_httpclient no longer logs exceptions, since those exceptions are made available to the caller as HTTPResponse.error.

tornado.httpserver

  • tornado.httpserver.HTTPServer更优雅地处理格式错误的HTTP标头.

  • HTTPServer现在支持X-Forwarded-For中的IP列表(它选择最后一个,即最接近的一个).

  • 现在,由于HTTP请求超过最大上传大小而失败,因此可以在CPython上迅速回收内存.

  • 现在可以在HTTPServer适当时设置TCP_NODELAY标志.

  • The HTTPServer no_keep_alive option is now respected with HTTP 1.0 connections that explicitly pass Connection: keep-alive.

  • 现在,用于HTTP 1.0连接的Connection: keep-alive检查不区分大小写.

  • tornado.httpserver.HTTPRequeststrrepr不再包含请求主体,从而减少了日志日志中的错误(以及潜在的公开/保留私人数据).

tornado.httputil

tornado.ioloop

  • 一些IOLoop实现(例如pyzmq )接受除整数文件描述符之外的对象. 这些对象现在将有其.close()时所调用的方法IOLoop` is closed with ``all_fds=True .

  • The stub handles left behind by IOLoop.remove_timeout will now get cleaned up instead of waiting to expire.

tornado.iostream

  • 修复了BaseIOStream.read_until_close中的错误,该错误有时会导致数据传递到最终回调而不是流回调.

  • IOStream接近回调现在运行更可靠,如果有一个异常_try_inline_read .

  • 新方法BaseIOStream.set_nodelay可用于设置TCP_NODELAY标志.

  • 修复了未正确报告SSLIOStream.connect (和SimpleAsyncHTTPClient )中的错误的情况.

tornado.locale

tornado.netutil

  • 现在,默认的Resolver实现可在Solaris上运行.

  • Resolver现在具有close方法.

  • 修复了在具有滥用通配符模式的证书上使用tornado.netutil.ssl_match_hostname时可能的CPU DoS的问题.

  • 现在, ThreadedResolver所有实例共享一个线程池,该线程池的大小由要创建的第一个线程池(或静态Resolver.configure方法)设置.

  • 现在已记录ExecutorResolver供公众使用.

  • 现在, bind_sockets可以在不完全支持IPv6的配置中使用.

tornado.options

tornado.process

tornado.stack_context

  • tornado.stack_context已被重写,现在速度更快.

  • 新功能run_with_stack_context促进了协程中堆栈上下文的使用.

tornado.tcpserver

tornado.template

  • 模板系统使用的某些内部名称已更改; 现在,模板中的所有"保留"名称都以_tt_ .

tornado.testing

tornado.util

tornado.web

tornado.websocket

tornado.wsgi

  • 修复了在写入输出时关闭连接时WSGIContainer的异常.