Now that we've dropped python 3.3 (so create_default_context is
present on all supported versions), we can drop all ssl
backwards-compatibility and require the modern feature set.
* Drop support for python 3.3
In June 2017, Python 3.3 accounted for 0.2% of Tornado's downloads
from pypi.
* travis.yml: Use trusty, update pypy versions
Get a py35-compatible version of pypy3. Plain "pypy" no longer seems
to work in this environment, so specify a version.
Drop testing of python 2.7.8, which no longer seems to be available.
* gen,queues: Drop the "legacy aiter protocol"
This protocol changed in Python 3.5.2 (after being introduced in
3.5.0). Async iteration now requires that version of Python (or
newer).
Closes#2107
* travis.yml: Only run doctests on one version of python 3
* Get tests passing on latest version of pypy3
* Correctly clear and create a new ioloop during autoreload
After the removal of the deprecated io_loop arguments from all functions,
the autoreload module stopped working as the wait function's usage was
missed in the refactor. This resulted in the start function receiving an
IOLoop object as its only argument which it then used as the check_time
argument resulting in errors further down the line when the check_time
is expected to be an int.
* Use the ioloop's add_callback function to start the ioloop on wait
There's no need to stop and clear the loop here, just add start as
a callback and start up the ioloop.
* In tornadoweb/tornado#1112 it was decided to stop including headers
in the request repr, since they are needlessly verbose and risk
leaking user secrets into the application log.
When HTTP1Connection acts as the server, it closes the connection
after writing the response if the client includes the
"Connection: close" header in the request, or if the `no_keep_alive`
option is set to True in the constructor.
According to https://tools.ietf.org/html/rfc7230#section-6.6
> The server SHOULD send a "close" connection option in its final
response on that connection.
It was possible for an Application to set the Connection header
appropriately. But it is very helpful for tornado to take care of
this automatically, particularly if "close" was specified in a
request header.
In addition to changing the configurable default, add a special case
in IOLoop.current() so that the current IOLoop will be backed by
the main asyncio event loop.