What’s new in Tornado 4.4¶
Jul 15, 2016¶
General¶
tornado.curl_httpclient
¶
- Failures in
_curl_setup_request
no longer cause themax_clients
pool to be exhausted. - Non-ascii header values are now handled correctly.
tornado.gen
¶
with_timeout
now accepts any yieldable object (exceptYieldPoint
), not justtornado.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 atornado.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 aContent-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 areuse_port
argument.
tornado.testing
¶
- Test sockets now always use
127.0.0.1
instead oflocalhost
. This avoids conflicts when the automatically-assigned port is available on IPv4 but not IPv6, or in unusual network configurations whenlocalhost
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 usessuper
, which improves support for multiple inheritance.