]>
git.ipfire.org Git - thirdparty/tornado.git/log
Ben Darnell [Sun, 19 Jan 2020 22:37:14 +0000 (17:37 -0500)]
asyncio: AnyThreadEventLoopPolicy should always use selectors on windows
Ben Darnell [Sun, 19 Jan 2020 20:19:45 +0000 (15:19 -0500)]
ci: Add python 3.8 to windows CI
Ben Darnell [Sun, 19 Jan 2020 20:11:54 +0000 (15:11 -0500)]
testing: Add level argument to ExpectLog
This makes it possible for tests to be a little more precise, and also
makes them less dependent on exactly how the test is run (runtests.py
sets the logging level to info, but when running tests directly from
an editor it may use the default of warnings-only).
CI only runs the tests with runtests.py, so this might regress, but I'm
not building anything to prevent that yet (options include running the
tests differently in CI or making ExpectLog always use a fixed log
configuration instead of picking up the current one)
Ben Darnell [Sun, 19 Jan 2020 16:00:06 +0000 (11:00 -0500)]
test: Add hasattr check for SIGCHLD
This name is not present on all platforms
Ben Darnell [Sun, 19 Jan 2020 15:59:27 +0000 (10:59 -0500)]
test: Add some more skips on windows
Alternate resolvers behave differently on this platform for unknown
reasons.
Ben Darnell [Sat, 18 Jan 2020 23:24:03 +0000 (18:24 -0500)]
test: Use selector event loop on windows.
This gets most of the tests working again on windows with py38.
Ben Darnell [Sat, 2 Nov 2019 21:29:29 +0000 (17:29 -0400)]
test: Add gitattributes for test data files
This ensures that the tests pass on Windows regardless of the user's git
CRLF settings.
Ben Darnell [Sun, 8 Dec 2019 21:01:27 +0000 (16:01 -0500)]
Merge pull request #2783 from kinow/fix-1824
Use bcrypt's checkpw instead of == in demo blog app
Bruno P. Kinoshita [Fri, 29 Nov 2019 10:49:35 +0000 (23:49 +1300)]
use bcrypt's checkpw instead of ==
Ben Darnell [Sat, 23 Nov 2019 20:48:43 +0000 (15:48 -0500)]
Merge pull request #2780 from bdarnell/lint-updates
lint: Update black and mypy
Ben Darnell [Mon, 4 Nov 2019 01:35:01 +0000 (20:35 -0500)]
lint: Use newer mypy
This required some minor code changes, mainly some adjustments in tests
(which are now analyzed more thoroughly in spite of being mostly
unannotated), and some changes to placement of type:ignore comments.
Ben Darnell [Sun, 3 Nov 2019 22:23:04 +0000 (17:23 -0500)]
lint: Upgrade to new version of black
Ben Darnell [Sun, 3 Nov 2019 22:18:54 +0000 (17:18 -0500)]
build: Run docs and lint on py38
This requires moving some noqa comments due to 3.8's changes to the
ast module.
Mike DePalatis [Sat, 23 Nov 2019 19:42:56 +0000 (12:42 -0700)]
web: Update hashing algorithm in StaticFileHandler (#2778)
Addresses #2776.
Ben Darnell [Sat, 23 Nov 2019 18:08:34 +0000 (13:08 -0500)]
Merge pull request #2777 from mivade/remove-speedups-py2-support
Housekeeping: Remove legacy Python support in speedups.c
Ben Darnell [Sat, 23 Nov 2019 17:25:41 +0000 (12:25 -0500)]
Merge pull request #2779 from bdarnell/ci-fix
ci: Don't run the full test suite on python 3.5.2
Ben Darnell [Sat, 23 Nov 2019 17:00:51 +0000 (12:00 -0500)]
ci: Don't run full test suite on python 3.5.2
Michael V. DePalatis [Thu, 21 Nov 2019 19:31:55 +0000 (12:31 -0700)]
Remove legacy Python support in speedups.c
Ben Darnell [Tue, 12 Nov 2019 02:49:40 +0000 (21:49 -0500)]
Merge pull request #2772 from ploxiln/fork_doc_exit
process: correct docs of fork_processes exit behavior
Pierce Lopez [Sun, 10 Nov 2019 17:43:27 +0000 (12:43 -0500)]
process: correct docs of fork_processes exit behavior
fixes #2771
Ben Darnell [Sun, 3 Nov 2019 22:08:52 +0000 (17:08 -0500)]
Merge pull request #2768 from bdarnell/ci-revamp
build: Revamp test/CI configuration
Ben Darnell [Sun, 3 Nov 2019 20:09:18 +0000 (15:09 -0500)]
build: Revamp test/CI configuration
Reduce tox matrix to one env per python version, with two extra builds
for lint and docs. Delegate to tox from travis-ci.
Add 3.8 to testing. Simplify by dropping coverage reporting and
"no-deps" test runs.
Ben Darnell [Sun, 3 Nov 2019 15:49:55 +0000 (10:49 -0500)]
Merge pull request #2767 from bdarnell/fix-lint
demos: Fix lint in webspider demo
Ben Darnell [Sun, 3 Nov 2019 14:57:48 +0000 (09:57 -0500)]
demos: Fix lint in webspider demo
Updates #2765
Ben Darnell [Sun, 3 Nov 2019 14:51:18 +0000 (09:51 -0500)]
Merge pull request #2765 from jvansan:master
Dead link handling in webspider example
Ben Darnell [Sun, 3 Nov 2019 14:47:37 +0000 (09:47 -0500)]
Merge pull request #2766 from tornadoweb/pin-black
ci: Pin version of black
Ben Darnell [Sat, 2 Nov 2019 21:37:36 +0000 (17:37 -0400)]
ci: Pin version of black
A new release of black changed the way some of our files are formatted,
so use a fixed version in CI.
Jeff van Santen [Sat, 2 Nov 2019 00:11:52 +0000 (17:11 -0700)]
Dead link handling
Added an extra set for handling dead links, and reporting.
One consequence of this is that using this script will "work" offline, but will report that some all the links were not fetched.
Ben Darnell [Mon, 21 Oct 2019 02:34:18 +0000 (22:34 -0400)]
Merge pull request #2727 from andersk/304
Clear fewer headers on 1xx/204/304 responses
Ben Darnell [Mon, 21 Oct 2019 02:16:10 +0000 (22:16 -0400)]
Merge pull request #2745 from remram44/re-unescape
Fix unescaping of regex routes
Ben Darnell [Thu, 17 Oct 2019 01:45:58 +0000 (21:45 -0400)]
Merge pull request #2748 from supakeen/readme-improvements
Use HTTPS link for tornado website.
Ben Darnell [Thu, 17 Oct 2019 01:34:13 +0000 (21:34 -0400)]
Merge pull request #2750 from jbampton/simplify-statements
Simplify chained comparisons.
Ben Darnell [Thu, 17 Oct 2019 01:31:40 +0000 (21:31 -0400)]
Merge pull request #2755 from tornadoweb/dependabot/pip/maint/twisted-19.7.0
build(deps): bump twisted from 19.2.1 to 19.7.0 in /maint
dependabot[bot] [Thu, 17 Oct 2019 01:14:26 +0000 (01:14 +0000)]
build(deps): bump twisted from 19.2.1 to 19.7.0 in /maint
Bumps [twisted](https://github.com/twisted/twisted) from 19.2.1 to 19.7.0.
- [Release notes](https://github.com/twisted/twisted/releases)
- [Changelog](https://github.com/twisted/twisted/blob/trunk/NEWS.rst)
- [Commits](https://github.com/twisted/twisted/compare/twisted-19.2.1...twisted-19.7.0)
Signed-off-by: dependabot[bot] <support@github.com>
Ben Darnell [Thu, 17 Oct 2019 00:54:06 +0000 (20:54 -0400)]
Merge pull request #2741 from khasanovbi/fix_head_transfer_encoding_chunked
Fix extra data sending at HEAD response with Transfer-Encoding: Chunked
John Bampton [Sun, 6 Oct 2019 02:44:52 +0000 (12:44 +1000)]
Simplify chained comparison.
supakeen [Sat, 5 Oct 2019 10:52:09 +0000 (10:52 +0000)]
Use HTTPS link for tornado website.
Remi Rampin [Fri, 4 Oct 2019 01:32:04 +0000 (21:32 -0400)]
Fix unescaping of regex routes
Previously, only the part before the first '(' would be correctly
unescaped.
Remi Rampin [Fri, 4 Oct 2019 15:00:43 +0000 (11:00 -0400)]
Add test for unescaping with groups
Bulat Khasanov [Sun, 8 Sep 2019 15:06:55 +0000 (18:06 +0300)]
Omit Transfer-Encoding header for HEAD response
Bulat Khasanov [Sun, 8 Sep 2019 03:14:52 +0000 (06:14 +0300)]
Fix extra data sending at HEAD response with Transfer-Encoding: Chunked
Anders Kaseorg [Fri, 30 Aug 2019 18:18:36 +0000 (11:18 -0700)]
Clear fewer headers on 1xx/204/304 responses
This function is called on more than just 304 responses; it’s
important to permit the Allow header on 204 responses. Also, the
relevant RFCs have changed significantly.
Fixes #2726.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Ben Darnell [Mon, 2 Sep 2019 17:20:28 +0000 (13:20 -0400)]
Merge pull request #2723 from bluetech/perf1
httputil: A couple of small performance improvements
Ben Darnell [Mon, 2 Sep 2019 16:12:02 +0000 (12:12 -0400)]
Merge pull request #2735 from ploxiln/body_args_bytes
parse_body_arguments: allow incomplete url-escaping
Pierce Lopez [Thu, 29 Aug 2019 02:56:31 +0000 (22:56 -0400)]
httputil.parse_body_arguments: allow incomplete url-escaping
support x-www-form-urlencoded body with values consisting of
encoded bytes which are not url-encoded into ascii
(it seems other web frameworks often support this)
add bytes qs support to escape.parse_qs_bytes,
leave str qs support for backwards compatibility
Pierce Lopez [Thu, 29 Aug 2019 03:34:54 +0000 (23:34 -0400)]
tests: replace remaining assertEquals() with assertEqual()
assertEquals() is deprecated, and python3.7/pytest can warn about it
Semen Zhydenko [Sun, 11 Aug 2019 23:44:12 +0000 (01:44 +0200)]
spelling corrections
* maintainance -> maintenance
* recieving -> receiving
Ben Darnell [Sun, 11 Aug 2019 23:43:01 +0000 (19:43 -0400)]
Merge pull request #2725 from bdarnell/ssl-win-py374
test: Disable TLS 1.3 in one test
Ben Darnell [Sun, 11 Aug 2019 02:00:41 +0000 (22:00 -0400)]
test: Disable TLS 1.3 in one test
This test started failing on windows CI with an upgrade to python
3.7.4 (which bundles a newer version of openssl). Disable tls 1.3 for
now.
Possibly related to #2536
Ran Benita [Tue, 6 Aug 2019 16:18:41 +0000 (19:18 +0300)]
httputil: use compiled re patterns
This is slightly faster than using the builtin cache, e.g.:
With benchmark below (Python 3.7, Linux):
before: 0.
7284867879934609
after: 0.
2657967659761198
```py
import re
from time import perf_counter
line = 'HTTP/1.1'
_http_version_re = re.compile(r"^HTTP/1\.[0-9]$")
start = perf_counter()
for i in range(
1000000 ):
_http_version_re.match(line)
print(perf_counter() - start)
start = perf_counter()
for i in range(
1000000 ):
re.match(r"^HTTP/1\.[0-9]$", line)
print(perf_counter() - start)
```
Ran Benita [Tue, 6 Aug 2019 15:16:31 +0000 (18:16 +0300)]
httputil: cache header normalization with @lru_cache instead of hand-rolling
Tornado is now py3-only so @lru_cache is always available.
Performance is about the same. Benchmark below. Python 3.7 on Linux.
before, cached: 0.
9121252089971676
before, uncached: 13.
358482279989403
after, cached: 0.
9175888689933345
after, uncached: 11.
085199063003529
```py
from time import perf_counter
names = [f'sOMe-RanDOM-hEAdeR-{i}' for i in range(1000)]
from tornado.httputil import _normalize_header
start = perf_counter()
for i in range(10000):
# _normalize_header.cache_clear()
for name in names:
_normalize_header(name)
print(perf_counter() - start)
from tornado.httputil import _NormalizedHeaderCache
start = perf_counter()
_normalized_headers = _NormalizedHeaderCache(1000)
for i in range(10000):
# _normalized_headers = _NormalizedHeaderCache(1000)
for name in names:
_normalized_headers[name]
print(perf_counter() - start)
```
Ben Darnell [Fri, 2 Aug 2019 14:38:08 +0000 (10:38 -0400)]
Merge pull request #2692 from mivade/docs-blog-example-update
Update database backend reference
Ben Darnell [Fri, 2 Aug 2019 13:44:11 +0000 (09:44 -0400)]
Merge pull request #2715 from mivade/template-optional-autoescape-typing
Mark Template autoescape kwarg as Optional
Ben Darnell [Fri, 2 Aug 2019 13:38:12 +0000 (09:38 -0400)]
Merge pull request #2707 from remram44/patch-1
Strip documentation about removed argument
Michael V. DePalatis [Fri, 26 Jul 2019 17:01:11 +0000 (11:01 -0600)]
Mark Template autoescape kwarg as Optional
Remi Rampin [Wed, 17 Jul 2019 21:50:19 +0000 (14:50 -0700)]
Strip documentation about removed argument
Michael V. DePalatis [Wed, 26 Jun 2019 15:35:20 +0000 (09:35 -0600)]
Update database backend reference
Ben Darnell [Sun, 23 Jun 2019 22:57:56 +0000 (18:57 -0400)]
Merge pull request #2687 from bdarnell/req-bump
Bump version of twisted to pick up security fix
Ben Darnell [Sun, 23 Jun 2019 22:57:45 +0000 (18:57 -0400)]
Merge pull request #2688 from bdarnell/relnotes603
Release notes for 6.0.3
Ben Darnell [Sat, 22 Jun 2019 17:06:50 +0000 (13:06 -0400)]
Release notes for 6.0.3
Ben Darnell [Sun, 23 Jun 2019 22:40:37 +0000 (18:40 -0400)]
Bump version of twisted to pick up security fix
Ben Darnell [Sat, 22 Jun 2019 18:50:36 +0000 (14:50 -0400)]
Merge pull request #2686 from bdarnell/docs-py38-windows
docs: Add notice about WindowsSelectorEventLoop on py38
Ben Darnell [Sat, 22 Jun 2019 18:39:38 +0000 (14:39 -0400)]
docs: Add notice about WindowsSelectorEventLoop on py38
Fixes #2608
Ben Darnell [Sat, 22 Jun 2019 17:08:36 +0000 (13:08 -0400)]
Merge pull request #2684 from bdarnell/socket-error
netutil: Ignore EADDRNOTAVAIL when binding to localhost ipv6
Ben Darnell [Sat, 22 Jun 2019 16:50:07 +0000 (12:50 -0400)]
test: Skip test_source_port_fail when running as root
Root is always allowed to bind to low port numbers, so we can't
simulate failure in this case. This is the last remaining failure when
running tests in docker.
Ben Darnell [Sat, 22 Jun 2019 16:45:57 +0000 (12:45 -0400)]
netutil: Ignore EADDRNOTAVAIL when binding to localhost ipv6
This happens in docker with default configurations and is generally
harmless.
Fixes #2274
Ben Darnell [Sat, 22 Jun 2019 15:38:50 +0000 (11:38 -0400)]
*: Modernize IO error handling
Where possible, replace use of errno with the exception hierarchy
available since python 3.3. Remove explicit handling of EINTR which
has been automatic since python 3.5
Ben Darnell [Sat, 22 Jun 2019 14:33:37 +0000 (10:33 -0400)]
Merge pull request #2683 from bdarnell/cancelledexception-py38
gen: Adapt to py38 CancelledError changes
Ben Darnell [Sat, 22 Jun 2019 13:42:09 +0000 (09:42 -0400)]
gen: Clean up docs for with_timeout
Mark CancelledError change as 6.0.3
Ben Darnell [Sat, 22 Jun 2019 00:42:11 +0000 (20:42 -0400)]
ci: Re-enable nightly python
Fixes #2677
Ben Darnell [Sat, 22 Jun 2019 00:32:39 +0000 (20:32 -0400)]
locks: Remove redundant CancelledError handling
CancelledError is now always considered "quiet" (and
concurrent.futures.CancelledError is no longer the same as
asyncio.CancelledError).
Ben Darnell [Sat, 22 Jun 2019 13:36:43 +0000 (09:36 -0400)]
Merge pull request #2681 from encukou/gen-ignore-cancel
gen.with_timeout: Don't log CancelledError after timeout
Petr Viktorin [Fri, 21 Jun 2019 11:52:04 +0000 (13:52 +0200)]
Fix ReST syntax
Petr Viktorin [Wed, 19 Jun 2019 16:09:17 +0000 (18:09 +0200)]
gen.with_timeout: Don't log CancelledError after timeout
See also: commit
a237a995a1d54ad6e07c1ecdf5103ff8f45073b5
Robin Roth [Mon, 17 Jun 2019 00:21:13 +0000 (02:21 +0200)]
mypy: Enable no_implicit_optional
"Implicit-optional" mode is on by default, but that default is intended to change in the indefinite future (python/peps#689, python/typing#275). Go ahead and change to the future explicit use of Optional.
Ben Darnell [Sun, 16 Jun 2019 14:06:57 +0000 (10:06 -0400)]
Merge pull request #2679 from ploxiln/curl_no_decompress
curl_httpclient: fix disabled decompress_response
Pierce Lopez [Fri, 14 Jun 2019 03:00:06 +0000 (23:00 -0400)]
tests: run test_gzip for curl_httpclient also
move simple_httpclient test_gzip to the shared httpclient tests,
to test the decompress_response option for curl_httpclient as well
Pierce Lopez [Wed, 12 Jun 2019 19:34:02 +0000 (15:34 -0400)]
curl_httpclient: fix disabled decompress_response
by setting None (NULL) instead of "none" for ENCODING
reported by Andrey Oparin <andrey@edsd.com>
Zachary Sailer [Sun, 9 Jun 2019 21:15:31 +0000 (14:15 -0700)]
iostream: check that stream is open before trying to read (#2670)
Ben Darnell [Sun, 9 Jun 2019 21:11:13 +0000 (17:11 -0400)]
Merge pull request #2673 from ploxiln/docs_build_quickfix
docs: conflict between sphinx-2.1, sphinxcontrib-asyncio
Pierce Lopez [Sat, 8 Jun 2019 19:10:26 +0000 (15:10 -0400)]
tests: allow failure on python nightly
seems to be due to a bunch of asyncio.exceptions.CancelledError
Pierce Lopez [Sat, 8 Jun 2019 19:10:12 +0000 (15:10 -0400)]
Revert "docs: remove sphinxcontrib-asyncio"
This reverts commit
71494a4db76b3ae458e5757d741bdd1aac255640 .
Pierce Lopez [Sat, 8 Jun 2019 19:02:57 +0000 (15:02 -0400)]
docs: remove sphinxcontrib-asyncio
no longer needed since Sphinx-2.1 (and effectively conflicts with it)
Pierce Lopez [Sat, 8 Jun 2019 18:44:11 +0000 (14:44 -0400)]
docs: build with sphinx < 2.1
sphinx 2.1 adds an ":async:" option for py:method:: and py:function::
and it does not seem to interact well with sphinxcontrib-asyncio
Ben Darnell [Sun, 5 May 2019 17:34:29 +0000 (13:34 -0400)]
Merge pull request #2653 from bdarnell/twisted-install
twisted: Restore the install() function
Ben Darnell [Sun, 5 May 2019 17:34:19 +0000 (13:34 -0400)]
Merge pull request #2654 from bdarnell/deps
Bump dependency versions, including mypy
Ben Darnell [Sun, 5 May 2019 15:50:34 +0000 (11:50 -0400)]
twisted: Restore the install() function
This function had more usage than I was aware of and we can preserve
the old behavior by making it an alias for asyncioreactor.install.
Fixes #2636
Ben Darnell [Sun, 5 May 2019 17:05:34 +0000 (13:05 -0400)]
deps: Bump mypy to 0.701
Ben Darnell [Sun, 5 May 2019 16:39:37 +0000 (12:39 -0400)]
maint: Bump maintainer requirements.txt versions
Drop autopep8, add sphinxcontrib-asyncio
Ben Darnell [Sat, 4 May 2019 18:24:05 +0000 (14:24 -0400)]
Merge pull request #2646 from m-burst/patch-1
Speedup headers parsing
Mikhail Burshteyn [Sat, 4 May 2019 08:16:18 +0000 (11:16 +0300)]
Speedup headers parsing
Replace `_CRLF_RE.split(headers)` with a simple `headers.split('\n')` with an additional check for `'\r'` in each line.
Add benchmark to measure performance impact of the change.
The benchmark results are as follows:
* split only: ~3x faster on CPython, 14-18x faster on PyPy
* full headers parse: ~1.3x faster on CPython, ~3-4.5x faster on PyPy
Ben Darnell [Mon, 29 Apr 2019 00:06:05 +0000 (20:06 -0400)]
Merge pull request #2649 from javabrett/2648-LogFormatter-CRITICAL-color
Added color for logging.CRITICAL = 5 (Magenta).
Ben Darnell [Sun, 28 Apr 2019 23:41:38 +0000 (19:41 -0400)]
Merge pull request #2650 from bdarnell/deprecation38
test: Silence a deprecation warning in py38+pycurl
Ben Darnell [Sun, 28 Apr 2019 23:31:52 +0000 (19:31 -0400)]
test: Silence a deprecation warning in py38+pycurl
Ben Darnell [Sun, 28 Apr 2019 23:31:22 +0000 (19:31 -0400)]
Merge pull request #2644 from Swixx/request-handler-get-accept-kwargs
Allow RequestHandler.get to accept **kwargs.
Brett Randall [Wed, 24 Apr 2019 03:36:37 +0000 (13:36 +1000)]
Added color for logging.CRITICAL = 5 (Magenta).
Fixed #2648.
Adam Sawicki [Mon, 22 Apr 2019 13:51:01 +0000 (09:51 -0400)]
Allow RequestHandler.get to accept **kwargs.
Ben Darnell [Sat, 23 Mar 2019 19:42:57 +0000 (15:42 -0400)]
Merge pull request #2631 from bdarnell/docs
Misc docs updates
Ben Darnell [Sat, 23 Mar 2019 18:02:21 +0000 (14:02 -0400)]
twisted: Remove outdated comments
Ben Darnell [Sat, 23 Mar 2019 17:57:41 +0000 (13:57 -0400)]
docs: Clarify platform support and add not-on-windows notes
We also picked up solaris /dev/poll support with the move to asyncio.
See #2622