Path to this page:
Subject: CVS commit: pkgsrc/www/py-tornado
From: Thomas Klausner
Date: 2015-02-08 17:31:48
Message id: 20150208163148.B26BE98@cvs.netbsd.org
Log Message:
Update to 4.1:
Highlights
If a Future contains an exception but that exception is never
examined or re-raised (e.g. by yielding the Future), a stack
trace will be logged when the Future is garbage-collected.
New class tornado.gen.WaitIterator provides a way to iterate
over Futures in the order they resolve.
The tornado.websocket module now supports compression via the
âpermessage-deflateâ extension. Override
WebSocketHandler.get_compression_options to enable on the server
side, and use the compression_options keyword argument to
websocket_connect on the client side.
When the appropriate packages are installed, it is possible to
yield asyncio.Future or Twisted Defered objects in Tornado
coroutines.
Backwards-compatibility notes
HTTPServer now calls start_request with the correct arguments.
This change is backwards-incompatible, afffecting any application
which implemented HTTPServerConnectionDelegate by following
the example of Application instead of the documented method
signatures.
tornado.concurrent
If a Future contains an exception but that exception is never
examined or re-raised (e.g. by yielding the Future), a stack
trace will be logged when the Future is garbage-collected.
Future now catches and logs exceptions in its callbacks.
tornado.curl_httpclient
tornado.curl_httpclient now supports request bodies for PATCH
and custom methods.
tornado.curl_httpclient now supports resubmitting bodies after
following redirects for methods other than POST.
curl_httpclient now runs the streaming and header callbacks on
the IOLoop.
tornado.curl_httpclient now uses its own logger for debug output
so it can be filtered more easily.
tornado.gen
New class tornado.gen.WaitIterator provides a way to iterate
over Futures in the order they resolve.
When the singledispatch library is available (standard on Python
3.4, available via pip install singledispatch on older versions),
the convert_yielded function can be used to make other kinds
of objects yieldable in coroutines.
New function tornado.gen.sleep is a coroutine-friendly analogue
to time.sleep.
gen.engine now correctly captures the stack context for its
callbacks.
tornado.httpclient
tornado.httpclient.HTTPRequest accepts a new argument
raise_error=False to suppress the default behavior of raising
an error for non-200 response codes.
tornado.httpserver
HTTPServer now calls start_request with the correct arguments.
This change is backwards-incompatible, afffecting any application
which implemented HTTPServerConnectionDelegate by following
the example of Application instead of the documented method
signatures.
HTTPServer now tolerates extra newlines which are sometimes
inserted between requests on keep-alive connections.
HTTPServer can now use keep-alive connections after a request
with a chunked body.
HTTPServer now always reports HTTP/1.1 instead of echoing the
request version.
tornado.httputil
New function tornado.httputil.split_host_and_port for parsing
the netloc portion of URLs.
The context argument to HTTPServerRequest is now optional, and
if a context is supplied the remote_ip attribute is also
optional.
HTTPServerRequest.body is now always a byte string (previously
the default empty body would be a unicode string on python 3).
Header parsing now works correctly when newline-like unicode
characters are present.
Header parsing again supports both CRLF and bare LF line
separators.
Malformed multipart/form-data bodies will always be logged
quietly instead of raising an unhandled exception; previously
the behavior was inconsistent depending on the exact error.
tornado.ioloop
The kqueue and select IOLoop implementations now report
writeability correctly, fixing flow control in IOStream.
When a new IOLoop is created, it automatically becomes âcurrentâ
for the thread if there is not already a current instance.
New method PeriodicCallback.is_running can be used to see
whether the PeriodicCallback has been started.
tornado.iostream
IOStream.start_tls now uses the server_hostname parameter for
certificate validation.
SSLIOStream will no longer consume 100% CPU after certain error
conditions.
SSLIOStream no longer logs EBADF errors during the handshake
as they can result from nmap scans in certain modes.
tornado.options
parse_config_file now always decodes the config file as utf8
on Python 3.
tornado.options.define more accurately finds the module defining
the option.
tornado.platform.asyncio
It is now possible to yield asyncio.Future objects in coroutines
when the singledispatch library is available and
tornado.platform.asyncio has been imported.
New methods tornado.platform.asyncio.to_tornado_future and
to_asyncio_future convert between the two librariesâ Future
classes.
tornado.platform.twisted
It is now possible to yield Deferred objects in coroutines when
the singledispatch library is available and tornado.platform.twisted
has been imported.
tornado.tcpclient
TCPClient will no longer raise an exception due to an ill-timed
timeout.
tornado.tcpserver
TCPServer no longer ignores its read_chunk_size argument.
tornado.testing
AsyncTestCase has better support for multiple exceptions.
Previously it would silently swallow all but the last; now it
raises the first and logs all the rest.
AsyncTestCase now cleans up Subprocess state on tearDown when
necessary.
tornado.web
The asynchronous decorator now understands concurrent.futures.Future
in addition to tornado.concurrent.Future.
StaticFileHandler no longer logs a stack trace if the connection
is closed while sending the file.
RequestHandler.send_error now supports a reason keyword argument,
similar to tornado.web.HTTPError.
RequestHandler.locale now has a property setter.
Application.add_handlers hostname matching now works correctly
with IPv6 literals.
Redirects for the Application default_host setting now match
the request protocol instead of redirecting HTTPS to HTTP.
Malformed _xsrf cookies are now ignored instead of causing
uncaught exceptions.
Application.start_request now has the same signature as
HTTPServerConnectionDelegate.start_request.
tornado.websocket
The tornado.websocket module now supports compression via the
âpermessage-deflateâ extension. Override
WebSocketHandler.get_compression_options to enable on the server
side, and use the compression_options keyword argument to
websocket_connect on the client side.
WebSocketHandler no longer logs stack traces when the connection
is closed.
WebSocketHandler.open now accepts *args, **kw for consistency
with RequestHandler.get and related methods.
The Sec-WebSocket-Version header now includes all supported
versions.
websocket_connect now has a on_message_callback keyword argument
for callback-style use without read_message().
Files: