What’s new in Tornado 2.4

Sep 4, 2012

General

HTTP clients

  • Removed max_simultaneous_connections argument from tornado.httpclient (both implementations). This argument hasn’t been useful for some time (if you were using it you probably want max_clients instead)
  • tornado.simple_httpclient now accepts and ignores HTTP 1xx status responses.

tornado.ioloop and tornado.iostream

  • Fixed a bug introduced in 2.3 that would cause IOStream close callbacks to not run if there were pending reads.
  • Improved error handling in SSLIOStream and SSL-enabled TCPServer.
  • SSLIOStream.get_ssl_certificate now has a binary_form argument which is passed to SSLSocket.getpeercert.
  • SSLIOStream.write can now be called while the connection is in progress, same as non-SSL IOStream (but be careful not to send sensitive data until the connection has completed and the certificate has been verified).
  • IOLoop.add_handler cannot be called more than once with the same file descriptor. This was always true for epoll, but now the other implementations enforce it too.
  • On Windows, TCPServer uses SO_EXCLUSIVEADDRUSER instead of SO_REUSEADDR.

tornado.template

  • {% break %} and {% continue %} can now be used looping constructs in templates.
  • It is no longer an error for an if/else/for/etc block in a template to have an empty body.

tornado.testing

tornado.web

  • New method RequestHandler.get_template_namespace can be overridden to add additional variables without modifying keyword arguments to render_string.
  • RequestHandler.add_header now works with WSGIApplication.
  • RequestHandler.get_secure_cookie now handles a potential error case.
  • RequestHandler.__init__ now calls super().__init__ to ensure that all constructors are called when multiple inheritance is used.
  • Docs have been updated with a description of all available Application settings

Other modules

  • OAuthMixin now accepts "oob" as a callback_uri.
  • OpenIDMixin now also returns the claimed_id field for the user.
  • tornado.platform.twisted shutdown sequence is now more compatible.
  • The logging configuration used in tornado.options is now more tolerant of non-ascii byte strings.