Tornado 4.3的新功能¶
2015年11月6日¶
集锦¶
支持Python3.5中的新异步/等待关键字。在大多数情况下,
async def
can be used in place of the@gen.coroutine
decorator. Inside a function defined withasync def
, useawait
instead ofyield
to wait on an asynchronous operation. Coroutines defined with async/await will be faster than those defined with@gen.coroutine
andyield
, but do not support some features includingCallback
/Wait
或者能够产生一个扭曲的Deferred
。看见 the users' guide 想要更多。在旧版本的python中使用cython编译时,async/await关键字也可用。
折旧通知¶
这将是最后一个支持Python2.6或3.2的Tornado版本。请注意,Pypy3将继续受到支持,即使它实现了Python3.2和3.3功能的混合。
安装¶
龙卷风有几个新的依赖关系:
ordereddict
在Python 2.6上,singledispatch
在3.4之前的所有Python版本上(这是Tornado以前版本中的可选依赖项,现在是强制的),以及backports_abc>=0.4
在3.5之前的所有版本上。使用安装时将自动安装这些依赖项pip
或setup.py install
. 在Google应用程序引擎上运行时,不需要这些依赖项。在Windows(32位和64位)上为python 3.5提供二进制轮子。
tornado.auth
¶
新方法
OAuth2Mixin.oauth2_request
可用于通过访问令牌进行身份验证请求。现在可以兼容用cython编译的回调。
tornado.autoreload
¶
修复了autoreload命令行包装器的一个问题,在这个问题中,导入将被错误地解释为相对导入。
tornado.curl_httpclient
¶
修复了多行标题的分析。
allow_nonstandard_methods=True
现在绕过身体健康检查,就像在simple_httpclient
.这个
PATCH
方法现在允许没有allow_nonstandard_methods=True
.
tornado.gen
¶
WaitIterator
现在支持async for
关于python 3.5的声明。@gen.coroutine
可以应用于用cython编译的函数。在3.5之前的python版本上,backports_abc
必须为此功能安装程序包。Multi
和multi_future
已弃用,并替换为统一函数multi
.
tornado.httpclient
¶
tornado.httpclient.HTTPError
现在可以使用copy
模块。
tornado.httpserver
¶
同时包含这两者的请求
Content-Length
和Transfer-Encoding
将被视为错误。
tornado.httputil
¶
HTTPHeaders
现在可以腌制和剥除。
tornado.ioloop
¶
IOLoop(make_current=True)
现在按预期工作,而不是提出例外。Twisted和Asyncio IOLoop实现现已清除
current()
当他们离开时,就像标准的IOLoop。IOLoop.add_callback
在单线程情况下更快。IOLoop.add_callback
在已关闭的IOLoop上调用时不再引发错误,但不会调用回调。
tornado.iostream
¶
连体衣风格的用法
IOStream
现在将大多数错误转换为StreamClosedError
它可以减少来自应用程序控制之外的异常(尤其是SSL错误)的日志噪声。StreamClosedError
现在有一个real_error
指示流关闭原因的属性。它和error
属性IOStream
但可能比IOStream
本身。改进的错误处理
read_until_close
.当对SSL服务器进行端口扫描时,日志记录的噪声较小。
EINTR
现在对所有读取进行处理。
tornado.locale
¶
tornado.locale.load_translations
现在接受UTF-8以外的编码。如果存在物料清单,将自动检测UTF-16和UTF-8;对于其他编码load_translations
有一个encoding
参数。
tornado.locks
¶
tornado.log
¶
新的基于时间的日志旋转模式可用于
--log_rotate_mode=time
,--log-rotate-when
和log-rotate-interval
.
tornado.netutil
¶
bind_sockets
现在支持SO_REUSEPORT
与reuse_port=True
争论。
tornado.options
¶
破折号和下划线现在在选项名称中完全可以互换。
tornado.queues
¶
Queue
现在支持async for
关于python 3.5的声明。
tornado.simple_httpclient
¶
当跟踪重定向时,
streaming_callback
和header_callback
将不再在重定向响应上运行(仅限最终的非重定向)。包含两者的响应
Content-Length
和Transfer-Encoding
将被视为错误。
tornado.template
¶
tornado.template.ParseError
现在除了行号之外还包括文件名。空白处理变得更加可配置。这个
Loader
构造函数现在有一个whitespace
争论,有一个新的template_whitespace
Application
设置,有一个新的{{% whitespace %}}
模板指令。所有这些选项都采用在tornado.template.filter_whitespace
功能。默认模式为single
与先前版本的龙卷风相同。现在支持非ASCII文件名。
tornado.testing
¶
ExpectLog
对象现在有一个布尔值logged_stack
属性,以便测试是否记录了异常堆栈跟踪。
tornado.web
¶
已删除每个传出头4000字节的硬限制。
StaticFileHandler
返回正确的Content-Type
对于文件与.gz
,.bz2
和.xz
扩展。小于1000字节的响应将不再被压缩。
默认的gzip压缩级别现在是6(以前是9)。
修正了龙卷风4.2.1的回归
StaticFileHandler
用一个path
属于/
.tornado.web.HTTPError
现在可以使用copy
模块。例外
Finish
现在接受将传递给方法的参数RequestHandler.finish
.新的
Application
设置xsrf_cookie_kwargs
可用于设置其他属性,如secure
或httponly
在XSRF cookie上。Application.listen
现在返回HTTPServer
它创造了。
tornado.websocket
¶
修复了启用压缩时连续帧的处理。