What’s new in Tornado 6.4.0
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
-
IOLoop.add_callback_from_signal is suspected to have been broken since Tornado 5.0 and will be removed in version 7.0. Use asyncio.loop.add_signal_handler instead.
-
The
client_secretargument 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.auth
-
The
client_secretargument 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-successre-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
-
IOLoop.add_callback_from_signal is suspected to have been broken since Tornado 5.0 and will be removed in version 7.0. Use asyncio.loop.add_signal_handler instead.
-
The type annotation for IOLoop.run_in_executor has been updated to match the updated signature of asyncio.loop.run_in_executor.
-
Fixed reference cycles that could lead to increased memory usage.
tornado.locale
- format_timestamp now supports “aware” datetime objects.
tornado.platform.asyncio
-
The shutdown protocol for AddThreadSelectorEventLoop now requires the use of asyncio.run or asyncio.loop.shutdown_asyncgens to avoid leaking the thread.
-
Introduced SelectorThread class containing the core functionality of AddThreadSelectorEventLoop.
-
The
close()method of AddThreadSelectorEventLoop is now idempotent.
tornado.web
- StaticFileHandler.get_modified_time now supports “aware” datetime objects and the default implementation now returns aware objects.
tornado.websocket
-
Unclosed client connections now reliably log a warning. Previously the warning was dependent on garbage collection and whether the
ping_intervaloption was used. -
The
subprotocolsargument to WebSocketClientConnection now defaults to None instead of an empty list (which was mutable and reused)
