Skip to main content

Tornado 3.1的新功能

2013年6月15日

多个模块

  • 许多参考周期已在整个软件包中分解,允许在CPython上进行更有效的垃圾收集。

  • 当打开并立即关闭连接(即端口扫描)时,或者在与已关闭连接相关的其他情况下,停止一些日志消息。

  • 各种小的加速:HTTPHeaders 案例归一化,UIModule 代理对象,预编译一些regexes。

tornado.auth

  • OAuthMixin 总是按照规范的要求在其请求中发送 oauth_version=1.0

  • FacebookGraphMixin 现在使用 facebook_request 中的 self._FACEBOOK_BASE_URL 来允许基址url被覆盖。

  • tornado.auth mixin类中的 authenticate_redirectauthorize_redirect 方法现在都返回Futures。这些方法在 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,它可以是 basicdigest。摘要认证仅支持 tornado.curl_httpclient

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

  • curl_httpclient 现在支持 PATCHOPTIONS 方法,而不使用 allow_nonstandard_methods=True

  • 围绕一个类libcurl中的错误,将导致错误从 IOLoop.update_handler 在各种场景,包括摘要身份验证和袜子代理。

  • TCP_NODELAY 标志现在在 simple_httpclient 中适当时设置。

  • simple_httpclient 不再记录异常,因为这些异常作为 HTTPResponse.error 提供给调用者。

tornado.httpserver

  • tornado.httpserver.HTTPServer 更加优雅地处理格式不正确的HTTP头。

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

  • 当HTTP请求失败,因为超过了最大上传大小,现在在CPython上立即回收内存。

  • TCP_NODELAY 标志现在在 HTTPServer 中适当时设置。

  • HTTPServer no_keep_alive 选项现在遵守明确通过 Connection: keep-alive 的HTTP 1.0连接。

  • 对HTTP 1.0连接的 Connection: keep-alive 检查现在不区分大小写。

  • tornado.httpserver.HTTPRequeststrrepr 不再包括请求体,从而减少了错误(和潜在的暴露/保留私人数据)的日志垃圾邮件。

tornado.httputil

  • HTTPHeaders 中使用的缓存将不再无限制地增长。

tornado.ioloop

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

  • IOLoop.remove_timeout 留下的存根柄现在将被清理,而不是等待到期。

tornado.iostream

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

  • 如果 _try_inline_read 中有异常,IOStream 关闭回调现在可以更可靠地运行。

  • 新方法 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.tcpserver

tornado.template

  • 模板系统使用的一些内部名称已更改;现在模板中的所有“保留”名称从 _tt_ 开始。

tornado.testing

tornado.util

tornado.web

tornado.websocket

tornado.wsgi

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