What’s new in Tornado 4.4¶
Jul 15, 2016¶
General¶
tornado.curl_httpclient¶
- Failures in _curl_setup_request no longer cause the max_clients pool to be exhausted.
- Non-ascii header values are now handled correctly.
tornado.gen¶
- with_timeout now accepts any yieldable object (except YieldPoint), not just tornado.concurrent.Future.
tornado.httpclient¶
- The errors raised by timeouts now indicate what state the request was in; the error message is no longer simply “599 Timeout”.
- Calling repr on a tornado.httpclient.HTTPError no longer raises an error.
tornado.httpserver¶
- Int-like enums (including http.HTTPStatus) can now be used as status codes.
- Responses with status code 204 No Content no longer emit a Content-Length: 0 header.
tornado.ioloop¶
- Improved performance when there are large numbers of active timeouts.
tornado.options¶
- Options can now be modified with subscript syntax in addition to attribute syntax.
- The special variable __file__ is now available inside config files.
tornado.simple_httpclient¶
- HTTP/1.0 (not 1.1) responses without a Content-Length header now work correctly.
tornado.tcpserver¶
- TCPServer.bind now accepts a reuse_port argument.
tornado.testing¶
- Test sockets now always use 127.0.0.1 instead of localhost. This avoids conflicts when the automatically-assigned port is available on IPv4 but not IPv6, or in unusual network configurations when localhost has multiple IP addresses.
tornado.web¶
- image/svg+xml is now on the list of compressible mime types.
- Fixed an error on Python 3 when compression is used with multiple Vary headers.
tornado.websocket¶
- WebSocketHandler.__init__ now uses super, which improves support for multiple inheritance.