What’s new in Tornado 6.4.0

Nov 28, 2023

General Changes

  • Python 3.12 is now supported. Older versions of Tornado will work on Python 3.12 but may log deprecation warnings.

Deprecation Notices

tornado.auth

  • The client_secret argument to OAuth2Mixin.authorize_redirect is deprecated and will be removed in Tornado 7.0. This argument has never been used and other similar methods in this module don’t have it.

  • TwitterMixin is deprecated and will be removed in the future.

tornado.autoreload

  • Autoreload can now be used when the program is run as a directory rather than a file or module.

  • New CLI flag --until-success re-runs the program on any failure but stops after the first successful run.

tornado.concurrent

  • Fixed reference cycles that could lead to increased memory usage.

tornado.escape

  • Several methods in this module now simply pass through to their equivalents in the standard library.

tornado.gen

  • This module now holds a strong reference to all running asyncio.Task objects it creates. This prevents premature garbage collection which could cause warnings like “Task was destroyed but it is pending!”.

tornado.ioloop

tornado.locale

tornado.platform.asyncio

tornado.web

tornado.websocket

  • Unclosed client connections now reliably log a warning. Previously the warning was dependent on garbage collection and whether the ping_interval option was used.

  • The subprotocols argument to WebSocketClientConnection now defaults to None instead of an empty list (which was mutable and reused)