What’s new in the next version of Tornado¶
In progress¶
Highlights¶
- The new async/await keywords in Python 3.5 are supported. In most cases,
async defcan be used in place of the@gen.coroutinedecorator. Inside a function defined withasync def, useawaitinstead ofyieldto wait on an asynchronous operation. Coroutines defined with async/await will be faster than those defined with@gen.coroutineandyield, but do not support some features includingCallback/Waitor the ability to yield a TwistedDeferred.
tornado.auth¶
- New method
OAuth2Mixin.oauth2_requestcan be used to make authenticated requests with an access token.
tornado.autoreload¶
- Fixed an issue with the autoreload command-line wrapper in which imports would be incorrectly interpreted as relative.
tornado.gen¶
WaitIteratornow supports theasync forstatement on Python 3.5.
tornado.httputil¶
HTTPHeaderscan now be pickled and unpickled.
tornado.ioloop¶
IOLoop(make_current=True)now works as intended instead of raising an exception.- The Twisted and asyncio IOLoop implementations now clear
current()when they exit, like the standard IOLoops.
tornado.iostream¶
- Coroutine-style usage of
IOStreamnow converts most errors intoStreamClosedError, which has the effect of reducing log noise from exceptions that are outside the application’s control (especially SSL errors). StreamClosedErrornow has areal_errorattribute which indicates why the stream was closed. It is the same as theerrorattribute ofIOStreambut may be more easily accessible than theIOStreamitself.
tornado.locale¶
tornado.locale.load_translationsnow accepts encodings other than UTF-8. UTF-16 and UTF-8 will be detected automatically if a BOM is present; for other encodingsload_translationshas anencodingparameter.
tornado.options¶
- Dashes and underscores are now fully interchangeable in option names.
tornado.queues¶
Queuenow supports theasync withstatement on Python 3.5.
tornado.template¶
tornado.template.ParseErrornow includes the filename in addition to line number.- Whitespace handling has become more configurable. The
Loaderconstructor now has awhitespaceargument, there is a newtemplate_whitespaceApplicationsetting, and there is a new{% whitespace %}template directive. All of these options take a mode name defined in thetornado.template.filter_whitespacefunction. The default mode issingle, which is the same behavior as prior versions of Tornado.
tornado.testing¶
ExpectLogobjects now have a booleanlogged_stackattribute to make it easier to test whether an exception stack trace was logged.
tornado.web¶
- The hard limit of 4000 bytes per outgoing header has been removed.
StaticFileHandlerreturns the correctContent-Typefor files with.gz,.bz2, and.xzextensions.- Responses smaller than 1000 bytes will no longer be compressed.
- The default gzip compression level is now 6 (was 9).