From: Ben Darnell Date: Mon, 28 May 2012 03:41:48 +0000 (-0700) Subject: Doc updates X-Git-Tag: v2.3.0~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0219bd5e1b5b5a84dfdd9df84cda92bdf83c3596;p=thirdparty%2Ftornado.git Doc updates --- diff --git a/tornado/stack_context.py b/tornado/stack_context.py index 96719bc61..184376295 100644 --- a/tornado/stack_context.py +++ b/tornado/stack_context.py @@ -96,6 +96,13 @@ class StackContext(object): StackContext takes the function itself rather than its result:: with StackContext(my_context): + + The result of ``with StackContext() as cb:`` is a deactivation + callback. Run this callback when the StackContext is no longer + needed to ensure that it is not propagated any further (note that + deactivating a context does not affect any instances of that + context that are currently pending). This is an advanced feature + and not necessary in most applications. ''' def __init__(self, context_factory, _active_cell=None): self.context_factory = context_factory diff --git a/website/sphinx/releases/next.rst b/website/sphinx/releases/next.rst index 4b8e8314e..31f1818b8 100644 --- a/website/sphinx/releases/next.rst +++ b/website/sphinx/releases/next.rst @@ -4,79 +4,108 @@ What's new in the next version of Tornado In progress ----------- +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`` + HTTP methods. * `tornado.simple_httpclient` is better about closing its sockets instead of leaving them for garbage collection. -* Repeated calls to `RequestHandler.set_cookie` with the same name now - overwrite the previous cookie instead of producing additional copies. * `tornado.simple_httpclient` correctly verifies SSL certificates for URLs containing IPv6 literals (This bug affected Python 2.5 and 2.6). -* Fixed a bug on python versions before 2.6.5 when `URLSpec` regexes - are constructed from unicode strings and keyword arguments are extracted. -* `tornado.curl_httpclient` now supports client SSL certificates (using - the same ``client_cert`` and ``client_key`` arguments as - `tornado.simple_httpclient`) -* `tornado.httpclient.HTTPClient` now supports the same constructor - keyword arguments as `AsyncHTTPClient`. -* `tornado.locale.get_supported_locales` no longer takes a meaningless - ``cls`` argument. -* 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` - method). -* The ``Etag`` header is now returned on 304 responses to an ``If-None-Match`` - request, improving compatibility with some caches. * `tornado.simple_httpclient` no longer includes basic auth credentials in the ``Host`` header when those credentials are extracted from the URL. -* `tornado.testing.AsyncTestCase.wait` now resets its timeout on each call. * `tornado.simple_httpclient` no longer modifies the caller-supplied header dictionary, which caused problems when following redirects. -* `tornado.web.addslash` and ``removeslash`` decorators now send permanent - redirects (301) instead of temporary (302). -* `tornado.wsgi.WSGIApplication` now parses arguments correctly on Python 3. -* `tornado.auth.FacebookGraphMixin` no longer sends ``post_args`` redundantly - in the url. +* `tornado.curl_httpclient` now supports client SSL certificates (using + the same ``client_cert`` and ``client_key`` arguments as + `tornado.simple_httpclient`) + +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 + sockets. `HTTPRequest.remote_ip` is still always an IP-style address + (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 + why a socket was closed. * `tornado.iostream.IOStream.read_until` and ``read_until_regex`` are much faster with large input. -* `tornado.simple_httpclient` now supports the ``OPTIONS`` and ``PATCH`` - HTTP methods. -* `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. +* `IOStream.write` performs better when given very large strings. +* `IOLoop.instance()` is now thread-safe. + +``tornado.options`` +~~~~~~~~~~~~~~~~~~~ + * `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`. * `tornado.options` ``--help`` output is now prettier. -* Templates now support ``else`` clauses in - ``try``/``except``/``finally``/``else`` blocks. +* `tornado.options.options` now supports attribute assignment. + +``tornado.template`` +~~~~~~~~~~~~~~~~~~~~ + * Template files containing non-ASCII (utf8) characters now work on Python 3 regardless of the locale environment variables. +* 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 to flush or not. -* `IOLoop.instance()` is now thread-safe. -* `tornado.options.options` now supports attribute assignment. -* The ``max_clients`` keyword argument to `AsyncHTTPClient.configure` now works. -* The ``extra_params`` argument to `tornado.escape.linkify` may now be - a callable, to allow parameters to be chosen separately for each link. -* `HTTPServer` now works correctly with paths starting with ``//`` -* Exception handling on Python 3 has been improved; previously some exceptions - such as `UnicodeDecodeError` would generate `TypeErrors` +* Repeated calls to `RequestHandler.set_cookie` with the same name now + overwrite the previous cookie instead of producing additional copies. * `tornado.web.OutputTransform.transform_first_chunk` now takes and returns 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 + 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` + method). +* The ``Etag`` header is now returned on 304 responses to an ``If-None-Match`` + request, improving compatibility with some caches. * `tornado.web` will no longer produce responses with status code 304 that also have entity headers such as ``Content-Length``. -* `StackContext` instances now have a deactivation callback that can be - used to prevent further propagation. + +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 function is called repeatedly. -* Extra data at the end of multipart form bodies is now ignored, which fixes - a compatibility problem with an iOS HTTP client library. -* `IOStream.write` performs better when given very large strings. -* `HTTPHeaders.copy` (inherited from `dict.copy`) now works correctly. -* `HTTPConnection.address` is now always the socket address, even for non-IP - sockets. `HTTPRequest.remote_ip` is still always an IP-style address - (fake data is used for non-IP sockets) -* `IOStream` now has an ``error`` attribute that can be used to determine - why a socket was closed. +* `tornado.locale.get_supported_locales` no longer takes a meaningless + ``cls`` argument. +* `StackContext` instances now have a deactivation callback that can be + 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` + diff --git a/website/static/sphinx.css b/website/static/sphinx.css index 1a9a5fb48..28c9b04e3 100644 --- a/website/static/sphinx.css +++ b/website/static/sphinx.css @@ -36,6 +36,10 @@ th.field-name { background: #fff; } +tt { + background: #fff; +} + /* "related" = top header */ div.related { position: fixed;