tornado/docs/releases/v2.3.0.rst

111 lines
4.9 KiB
ReStructuredText
Raw Normal View History

2012-06-01 04:39:07 +00:00
What's new in Tornado 2.3
=========================
2012-02-20 02:25:24 +00:00
2012-06-01 04:39:07 +00:00
May 31, 2012
------------
2012-02-20 02:25:24 +00:00
2012-05-28 03:41:48 +00:00
HTTP clients
~~~~~~~~~~~~
* `tornado.httpclient.HTTPClient` now supports the same constructor
keyword arguments as `.AsyncHTTPClient`.
* The ``max_clients`` keyword argument to `.AsyncHTTPClient.configure` now works.
* ``tornado.simple_httpclient`` now supports the ``OPTIONS`` and ``PATCH``
2012-05-28 03:41:48 +00:00
HTTP methods.
* ``tornado.simple_httpclient`` is better about closing its sockets
2012-02-20 02:25:24 +00:00
instead of leaving them for garbage collection.
* ``tornado.simple_httpclient`` correctly verifies SSL certificates for
URLs containing IPv6 literals (This bug affected Python 2.5 and 2.6).
* ``tornado.simple_httpclient`` no longer includes basic auth credentials
in the ``Host`` header when those credentials are extracted from the URL.
* ``tornado.simple_httpclient`` no longer modifies the caller-supplied header
2012-03-26 00:22:33 +00:00
dictionary, which caused problems when following redirects.
* ``tornado.curl_httpclient`` now supports client SSL certificates (using
2012-05-28 03:41:48 +00:00
the same ``client_cert`` and ``client_key`` arguments as
``tornado.simple_httpclient``)
2012-05-28 03:41:48 +00:00
HTTP Server
~~~~~~~~~~~
* `.HTTPServer` now works correctly with paths starting with ``//``
* ``HTTPHeaders.copy`` (inherited from `dict.copy`) now works correctly.
* ``HTTPConnection.address`` is now always the socket address, even for non-IP
2014-02-23 20:57:18 +00:00
sockets. ``HTTPRequest.remote_ip`` is still always an IP-style address
2012-05-28 03:41:48 +00:00
(fake data is used for non-IP sockets)
* Extra data at the end of multipart form bodies is now ignored, which fixes
a compatibility problem with an iOS HTTP client library.
``IOLoop`` and ``IOStream``
~~~~~~~~~~~~~~~~~~~~~~~~~~~
* `.IOStream` now has an ``error`` attribute that can be used to determine
2012-05-28 03:41:48 +00:00
why a socket was closed.
* ``tornado.iostream.IOStream.read_until`` and ``read_until_regex`` are much
2012-03-26 00:22:33 +00:00
faster with large input.
* ``IOStream.write`` performs better when given very large strings.
* `.IOLoop.instance()` is now thread-safe.
2012-05-28 03:41:48 +00:00
``tornado.options``
~~~~~~~~~~~~~~~~~~~
2012-05-07 05:59:56 +00:00
* `tornado.options` options with ``multiple=True`` that are set more than
once now overwrite rather than append. This makes it possible to override
values set in ``parse_config_file`` with ``parse_command_line``.
2012-05-07 05:59:56 +00:00
* `tornado.options` ``--help`` output is now prettier.
2012-05-28 03:41:48 +00:00
* `tornado.options.options` now supports attribute assignment.
``tornado.template``
~~~~~~~~~~~~~~~~~~~~
2012-05-07 05:59:56 +00:00
* Template files containing non-ASCII (utf8) characters now work on Python 3
regardless of the locale environment variables.
2012-05-28 03:41:48 +00:00
* Templates now support ``else`` clauses in
``try``/``except``/``finally``/``else`` blocks.
``tornado.web``
~~~~~~~~~~~~~~~
* `tornado.web.RequestHandler` now supports the ``PATCH`` HTTP method.
Note that this means any existing methods named ``patch`` in
``RequestHandler`` subclasses will need to be renamed.
* `tornado.web.addslash` and ``removeslash`` decorators now send permanent
redirects (301) instead of temporary (302).
* `.RequestHandler.flush` now invokes its callback whether there was any data
2012-05-07 05:59:56 +00:00
to flush or not.
* Repeated calls to `.RequestHandler.set_cookie` with the same name now
2012-05-28 03:41:48 +00:00
overwrite the previous cookie instead of producing additional copies.
* ``tornado.web.OutputTransform.transform_first_chunk`` now takes and returns
2012-05-21 00:06:03 +00:00
a status code in addition to the headers and chunk. This is a
backwards-incompatible change to an interface that was never technically
private, but was not included in the documentation and does not appear
to have been used outside Tornado itself.
* Fixed a bug on python versions before 2.6.5 when `.URLSpec` regexes
2012-05-28 03:41:48 +00:00
are constructed from unicode strings and keyword arguments are extracted.
* The ``reverse_url`` function in the template namespace now comes from
the `.RequestHandler` rather than the `.Application`. (Unless overridden,
`.RequestHandler.reverse_url` is just an alias for the `.Application`
2012-05-28 03:41:48 +00:00
method).
* The ``Etag`` header is now returned on 304 responses to an ``If-None-Match``
request, improving compatibility with some caches.
2012-05-21 00:06:03 +00:00
* `tornado.web` will no longer produce responses with status code 304
that also have entity headers such as ``Content-Length``.
2012-05-28 03:41:48 +00:00
Other modules
~~~~~~~~~~~~~
* `tornado.auth.FacebookGraphMixin` no longer sends ``post_args`` redundantly
in the url.
* The ``extra_params`` argument to `tornado.escape.linkify` may now be
a callable, to allow parameters to be chosen separately for each link.
* `tornado.gen` no longer leaks ``StackContexts`` when a ``@gen.engine`` wrapped
2012-05-28 03:16:42 +00:00
function is called repeatedly.
2012-05-28 03:41:48 +00:00
* `tornado.locale.get_supported_locales` no longer takes a meaningless
``cls`` argument.
* `.StackContext` instances now have a deactivation callback that can be
2012-05-28 03:41:48 +00:00
used to prevent further propagation.
* `tornado.testing.AsyncTestCase.wait` now resets its timeout on each call.
* `tornado.wsgi.WSGIApplication` now parses arguments correctly on Python 3.
* Exception handling on Python 3 has been improved; previously some exceptions
such as `UnicodeDecodeError` would generate ``TypeErrors``