Tornado 4.1的新功能¶
2015年2月7日¶
集锦¶
如果A
Future包含一个异常,但从不检查或重新引发该异常(例如,通过生成Future)时,将记录堆栈跟踪Future是垃圾收集。新班级
tornado.gen.WaitIterator提供迭代的方法Futures按照他们解决的顺序。这个
tornado.websocket模块现在支持通过“permessage deflate”扩展进行压缩。重写WebSocketHandler.get_compression_options在服务器端启用,并使用compression_options关键字参数websocket_connect在客户端。当安装了适当的软件包时,就有可能产生
asyncio.Future或扭曲Defered龙卷风中的物体。
向后兼容性说明¶
HTTPServer现在电话start_request使用正确的参数。此更改向后不兼容,影响实现的任何应用程序HTTPServerConnectionDelegate以……为例Application而不是记录的方法签名。
tornado.concurrent¶
tornado.curl_httpclient¶
tornado.curl_httpclient现在支持请求主体PATCH和自定义方法。tornado.curl_httpclient现在支持在重定向方法后重新提交实体,而不是POST.curl_httpclient现在运行IOLoop上的流式和头回调。tornado.curl_httpclient现在使用它自己的记录器进行调试输出,这样可以更容易地对其进行筛选。
tornado.gen¶
新班级
tornado.gen.WaitIterator提供迭代的方法Futures按照他们解决的顺序。当
singledispatch库可用(标准的python 3.4,可通过pip install singledispatch在旧版本上),则convert_yielded函数可用于使其他类型的对象在协程中可供使用。新功能
tornado.gen.sleep是一个友好的协程模拟time.sleep.gen.engine现在正确地捕获堆栈回调的上下文。
tornado.httpclient¶
tornado.httpclient.HTTPRequest接受新参数raise_error=False抑制非200响应代码引发错误的默认行为。
tornado.httpserver¶
HTTPServer现在电话start_request使用正确的参数。此更改是向后不兼容的,会影响实现的任何应用程序HTTPServerConnectionDelegate以……为例Application而不是记录的方法签名。HTTPServer现在可以容忍额外的换行符,这些换行符有时会插入保持活动连接的请求之间。HTTPServer现在可以在请求块体后使用Keep-Alive连接。HTTPServer现在总是报告HTTP/1.1而不是回显请求版本。
tornado.httputil¶
新功能
tornado.httputil.split_host_and_port用于解析netlocURL的一部分。这个
context参数HTTPServerRequest现在是可选的,如果提供了上下文,remote_ip属性也是可选的。HTTPServerRequest.body现在总是一个字节字符串(以前,python 3上的默认空体是unicode字符串)。当出现类似unicode的换行符时,头解析现在可以正常工作。
头解析再次支持CRLF和裸LF行分隔符。
畸形的
multipart/form-data将始终安静地记录实体,而不是引发未处理的异常;以前的行为根据确切的错误而不一致。
tornado.ioloop¶
这个
kqueue和selectIOLoop实现现在正确地报告了可写性,修复了iostream中的流控制。当一个新的
IOLoop如果没有当前实例,它将自动成为线程的“当前”。新方法
PeriodicCallback.is_running可用于查看PeriodicCallback已启动。
tornado.iostream¶
IOStream.start_tls现在使用server_hostname用于证书验证的参数。SSLIOStream在某些错误情况下将不再消耗100%的CPU。SSLIOStream不再日志EBADF握手过程中的错误,因为在某些模式下NMAP扫描会导致这些错误。
tornado.options¶
parse_config_file现在总是在python 3上将配置文件解码为utf8。tornado.options.define更准确地找到定义选项的模块。
tornado.platform.asyncio¶
现在有可能屈服
asyncio.Future协程中的对象singledispatch类库可用tornado.platform.asyncio已导入。新方法
tornado.platform.asyncio.to_tornado_future和to_asyncio_future在两个库之间转换'Future类。
tornado.platform.twisted¶
现在有可能屈服
Deferred协程中的对象singledispatch类库可用tornado.platform.twisted已导入。
tornado.tcpclient¶
TCPClient由于超时时间不正确,将不再引发异常。
tornado.tcpserver¶
TCPServer不再忽略它read_chunk_size争论。
tornado.testing¶
AsyncTestCase更好地支持多个异常。以前它会默默地吞下除最后一个以外的所有东西;现在它会抬起第一个,记录下其余的一切。AsyncTestCase现在打扫干净Subprocess状态对tearDown必要时。
tornado.web¶
这个
asynchronous装饰师现在明白了concurrent.futures.Future除了tornado.concurrent.Future.StaticFileHandler如果发送文件时连接关闭,则不再记录堆栈跟踪。RequestHandler.send_error现在支持reason关键字参数,类似于tornado.web.HTTPError.RequestHandler.locale现在有了一个属性设置器。Application.add_handlers主机名匹配现在可以正确地与ipv6文本匹配。的重定向
Applicationdefault_host现在设置与请求协议匹配,而不是将HTTPS重定向到HTTP。畸形的
_xsrf现在忽略cookie而不是导致未捕获的异常。Application.start_request现在的签名与HTTPServerConnectionDelegate.start_request.
tornado.websocket¶
这个
tornado.websocket模块现在支持通过“permessage deflate”扩展进行压缩。重写WebSocketHandler.get_compression_options在服务器端启用,并使用compression_options关键字参数websocket_connect在客户端。WebSocketHandler连接关闭时不再记录堆栈跟踪。WebSocketHandler.open现在接受*args, **kw为了与…保持一致RequestHandler.get以及相关方法。这个
Sec-WebSocket-Version标题现在包含所有支持的版本。websocket_connect现在有一个on_message_callback用于回调样式的关键字参数不使用read_message().