Tornado 3.1的新功能

2013年6月15日

多个模块

  • 在整个包中,许多引用循环都被分解了,从而可以在cpython上更有效地收集垃圾。

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

  • 各种小提速: HTTPHeaders 案例规范化, UIModule 代理对象,预编译一些regex。

tornado.auth

  • OAuthMixin 总是发送 oauth_version=1.0 按照规范要求。

  • FacebookGraphMixin 现在使用 self._FACEBOOK_BASE_URL 在里面 facebook_request 允许重写基URL。

  • 这个 authenticate_redirectauthorize_redirect 方法在 tornado.auth 混合类现在都返回期货。这些方法在 OAuthMixin 和派生类,尽管它们不接受回调。这个 Future 如果从用修饰的函数调用这些方法,则必须返回这些方法。 gen.coroutine (但不是) gen.engine

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

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

tornado.escape

tornado.gen

tornado.httpclient

  • tornado.httpclient.HTTPRequest 接受新的论点 auth_mode ,可以是 basicdigest . 摘要式身份验证仅支持 tornado.curl_httpclient .

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

  • curl_httpclient 现在支持 PATCHOPTIONS 不使用的方法 allow_nonstandard_methods=True .

  • 在libcurl中处理一类会导致错误的bug IOLoop.update_handler 在各种场景中,包括摘要式身份验证和SOCKS代理。

  • 这个 TCP_NODELAY 现在在适当的时候设置标志 simple_httpclient .

  • simple_httpclient 不再记录异常,因为这些异常作为 HTTPResponse.error .

tornado.httpserver

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

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

  • 当HTTP请求因超过最大上载大小而失败时,cpython会立即回收内存。

  • 这个 TCP_NODELAY 现在在适当的时候设置标志 HTTPServer .

  • 这个 HTTPServer no_keep_alive 选项现在受到明确传递的HTTP 1.0连接的尊重 Connection: keep-alive .

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

  • 这个 strrepr 属于 tornado.httpserver.HTTPRequest 不再包含请求主体,减少日志垃圾邮件错误(以及潜在的私人数据暴露/保留)。

tornado.httputil

  • 中使用的缓存 HTTPHeaders 没有束缚就不会再成长。

tornado.ioloop

  • 一些 IOLoop 实施(例如 pyzmq )接受整数文件描述符以外的对象;这些对象现在将具有 .close()IOLoop` is closed with `` all_fds=True.

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

tornado.iostream

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

  • 这个 IOStream close callback is now run more reliably if there is an exception in _ try_inline_read.

  • 新方法 BaseIOStream.set_nodelay 可用于设置 TCP_NODELAY 旗帜。

  • 修正了一个错误 SSLIOStream.connect (和 SimpleAsyncHTTPClient )未正确报告。

tornado.locale

tornado.netutil

  • 默认值 Resolver 实现现在可以在Solaris上工作。

  • Resolver 现在有一个 close 方法。

  • 修复了潜在的CPU DoS tornado.netutil.ssl_match_hostname 用于具有滥用通配符模式的证书。

  • 的所有实例 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 在写入输出时关闭连接。