Announcing Tornado 6.1

33 views
Skip to first unread message

Ben Darnell

unread,
Oct 30, 2020, 8:05:48 PM10/30/20
to Tornado Mailing List, python-torn...@googlegroups.com
I am pleased to announce the release of Tornado 6.1, available from


Release notes:


Deprecation notice

  • This is the last release of Tornado to support Python 3.5. Future versions will require Python 3.6 or newer.

General changes

  • Windows support has been improved. Tornado is now compatible with the proactor event loop (which became the default in Python 3.8) by automatically falling back to running a selector in a second thread. This means that it is no longer necessary to explicitly configure a selector event loop, although doing so may improve performance. This does not change the fact that Tornado is significantly less scalable on Windows than on other platforms.
  • Binary wheels are now provided for Windows, MacOS, and Linux (amd64 and arm64).

tornado.gen

  • coroutine now has better support for the Python 3.7+ contextvars module. In particular, the ContextVar.reset method is now supported.

tornado.http1connection

  • HEAD requests to handlers that used chunked encoding no longer produce malformed output.
  • Certain kinds of malformed gzip data no longer cause an infinite loop.

tornado.httpclient

  • Setting decompress_response=False now works correctly with curl_httpclient.
  • Mixing requests with and without proxies works correctly in curl_httpclient (assuming the version of pycurl is recent enough).
  • A default User-Agent of Tornado/$VERSION is now used if the user_agent parameter is not specified.
  • After a 303 redirect, tornado.simple_httpclient always uses GET. Previously this would use GET if the original request was a POST and would otherwise reuse the original request method. For curl_httpclient, the behavior depends on the version of libcurl (with the most recent versions using GET after 303 regardless of the original method).
  • Setting request_timeout and/or connect_timeout to zero is now supported to disable the timeout.

tornado.httputil

  • Header parsing is now faster.
  • parse_body_arguments now accepts incompletely-escaped non-ASCII inputs.

tornado.iostream

  • ssl.CertificateError during the SSL handshake is now handled correctly.
  • Reads that are resolved while the stream is closing are now handled correctly.

tornado.log

  • When colored logging is enabled, logging.CRITICAL messages are now recognized and colored magenta.

tornado.netutil

  • EADDRNOTAVAIL is now ignored when binding to localhost with IPv6. This error is common in docker.

tornado.platform.asyncio

  • AnyThreadEventLoopPolicy now also configures a selector event loop for these threads (the proactor event loop only works on the main thread)

tornado.platform.auto

  • The set_close_exec function has been removed.

tornado.testing

  • ExpectLog now has a level argument to ensure that the given log level is enabled.

tornado.web

  • RedirectHandler.get now accepts keyword arguments.
  • When sending 304 responses, more headers (including Allow) are now preserved.
  • reverse_url correctly handles escaped characters in the regex route.
  • Default Etag headers are now generated with SHA-512 instead of MD5.

tornado.websocket

  • The ping_interval timer is now stopped when the connection is closed.
  • websocket_connect now raises an error when it encounters a redirect instead of hanging.

Shane Spencer

unread,
Oct 30, 2020, 9:13:50 PM10/30/20
to python-...@googlegroups.com
Yay wheels!

--
You received this message because you are subscribed to the Google Groups "Tornado Web Server" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python-tornad...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python-tornado/CAFkYKJ7vkh5KOsRqNMZ5W3iVA2tMi0ty7FBFKf2VfmVoAcE3%3DQ%40mail.gmail.com.
--
Reply all
Reply to author
Forward
0 new messages