]> git.ipfire.org Git - thirdparty/tornado.git/log
thirdparty/tornado.git
15 hours agoMerge pull request #3393 from bdarnell/typing master
Ben Darnell [Fri, 7 Jun 2024 20:03:17 +0000 (16:03 -0400)] 
Merge pull request #3393 from bdarnell/typing

Update mypy and various typing improvements

15 hours agoconcurrent: Update type hint on chain_future to match implementation 3393/head
Ben Darnell [Fri, 7 Jun 2024 19:54:08 +0000 (15:54 -0400)] 
concurrent: Update type hint on chain_future to match implementation

This method has always accepted both asyncio and concurrent futures,
but the type hint incorrectly indicated that it only accepted asyncio
futures.

Fixes #3314

15 hours agoweb: Improve typing for UIModule.render
Ben Darnell [Fri, 7 Jun 2024 19:23:45 +0000 (15:23 -0400)] 
web: Improve typing for UIModule.render

In practice, UIModule.render often returns the
result of self.render_string, which returns bytes.
In fact, we have an example of that in this file
which had a type ignore comment. UIModule.render
may now return either str or bytes and downstream
code is responsible for handling this. (Note that
the new call to _unicode appears to be redundant
since the Template module's bytes return was
already working correctly, but this conversion is
necessary to satisfy the type checker.)

Fixes #3050

16 hours agoMerge pull request #3378 from pcavalar/typing-get-body-query-argument
Ben Darnell [Fri, 7 Jun 2024 19:16:44 +0000 (15:16 -0400)] 
Merge pull request #3378 from pcavalar/typing-get-body-query-argument

web: More accurate typing for get_{body,query}_argument()

16 hours agoMerge pull request #3381 from pcavalar/typing-loader-autoescape
Ben Darnell [Fri, 7 Jun 2024 19:06:08 +0000 (15:06 -0400)] 
Merge pull request #3381 from pcavalar/typing-loader-autoescape

template: type BaseLoader autoescape kwarg as optional

16 hours agoMerge pull request #3330 from mslynch/use-typing-namedtuple
Ben Darnell [Fri, 7 Jun 2024 19:00:43 +0000 (15:00 -0400)] 
Merge pull request #3330 from mslynch/use-typing-namedtuple

use typing.NamedTuple instead of collections.namedtuple

16 hours agoweb: Type SUPPORTED_METHODS so it can be overridden
Ben Darnell [Fri, 7 Jun 2024 18:51:34 +0000 (14:51 -0400)] 
web: Type SUPPORTED_METHODS so it can be overridden

Its default type is `Tuple[str, str, str, str, str, str, str]`, which
can only be overridden by a tuple of the exact same length.

This change originated in #3354 (thanks alexmv and andersk).

Closes #3354

16 hours agohttputil: Add types for elements of HTTPHeaders
Ben Darnell [Fri, 7 Jun 2024 18:42:28 +0000 (14:42 -0400)] 
httputil: Add types for elements of HTTPHeaders

Revealed an issue in websocket.py in which bytes were used when it
should have been str. This avoided being a bug because something
down the line was converting it to str but it was still a logical
type error.

The change to httputil.py was taken from #3329 (thanks mslynch).

Closes #3329
Fixes #3328

16 hours agoUpdate mypy and typing packages to latest
Ben Darnell [Fri, 7 Jun 2024 18:28:07 +0000 (14:28 -0400)] 
Update mypy and typing packages to latest

Adapt to newer upstream types for AbstractEventLoop

40 hours agoMerge pull request #3389 from bdarnell/bump-65
Ben Darnell [Thu, 6 Jun 2024 19:06:21 +0000 (15:06 -0400)] 
Merge pull request #3389 from bdarnell/bump-65

Version bump for 6.5.dev1

40 hours agoVersion bump for 6.5.dev1 3389/head
Ben Darnell [Thu, 6 Jun 2024 18:56:51 +0000 (14:56 -0400)] 
Version bump for 6.5.dev1

41 hours agoMerge pull request #3388 from bdarnell/release-641 branch6.4 stable v6.4.1
Ben Darnell [Thu, 6 Jun 2024 18:11:31 +0000 (14:11 -0400)] 
Merge pull request #3388 from bdarnell/release-641

Release notes and version bump for version 6.4.1

41 hours agoRelease notes and version bump for version 6.4.1 3388/head
Ben Darnell [Thu, 6 Jun 2024 17:56:41 +0000 (13:56 -0400)] 
Release notes and version bump for version 6.4.1

41 hours agoMerge pull request #3387 from bdarnell/chunked-parsing
Ben Darnell [Thu, 6 Jun 2024 17:40:06 +0000 (13:40 -0400)] 
Merge pull request #3387 from bdarnell/chunked-parsing

http1connection: Stricter handling of transfer-encoding and whitespace

41 hours agohttputil: Only strip tabs and spaces from header values 3387/head
Ben Darnell [Wed, 5 Jun 2024 20:50:37 +0000 (16:50 -0400)] 
httputil: Only strip tabs and spaces from header values

The RFC specifies that only tabs and spaces should be stripped.
Removing additonal whitespace characters can lead to framing
errors with certain proxies.

41 hours agoMerge pull request #3386 from bdarnell/curl-crlf
Ben Darnell [Thu, 6 Jun 2024 17:31:17 +0000 (13:31 -0400)] 
Merge pull request #3386 from bdarnell/curl-crlf

curl_httpclient,http1connection: Prohibit CR and LF in headers

2 days agohttp1connection: Stricter handling of transfer-encoding
Ben Darnell [Wed, 5 Jun 2024 20:50:11 +0000 (16:50 -0400)] 
http1connection: Stricter handling of transfer-encoding

Unexpected transfer-encoding values were previously ignored and treated
as the HTTP/1.0 default of read-until-close. This can lead to framing
issues with certain proxies. We now treat any unexpected value as an
error.

2 days agocurl_httpclient,http1connection: Prohibit CR and LF in headers 3386/head
Ben Darnell [Wed, 5 Jun 2024 19:43:45 +0000 (15:43 -0400)] 
curl_httpclient,http1connection: Prohibit CR and LF in headers

libcurl does not check for CR and LF in headers, making this the
application's responsibility. However, Tornado's other HTTP interfaces
check for linefeeds so we should do the same here so that switching
between the simple and curl http clients does not introduce header
injection vulnerabilties.

http1connection previously checked only for LF in headers (alone or in a
CRLF pair). It now prohibits bare CR as well, following the requirement
in RFC 9112.

3 days agoMerge pull request #3385 from bdarnell/update-black
Ben Darnell [Tue, 4 Jun 2024 18:25:10 +0000 (14:25 -0400)] 
Merge pull request #3385 from bdarnell/update-black

*: Update black

3 days agoMerge pull request #3384 from tornadoweb/dependabot/pip/requests-2.32.2
Ben Darnell [Tue, 4 Jun 2024 18:24:45 +0000 (14:24 -0400)] 
Merge pull request #3384 from tornadoweb/dependabot/pip/requests-2.32.2

build(deps): bump requests from 2.31.0 to 2.32.2

3 days ago*: Update black 3385/head
Ben Darnell [Tue, 4 Jun 2024 18:19:52 +0000 (14:19 -0400)] 
*: Update black

Closes #3367

3 days agobuild(deps): bump requests from 2.31.0 to 2.32.2 3384/head
dependabot[bot] [Tue, 4 Jun 2024 18:09:16 +0000 (18:09 +0000)] 
build(deps): bump requests from 2.31.0 to 2.32.2

Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.2.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.2)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
3 days agoMerge pull request #3377 from tornadoweb/dependabot/pip/jinja2-3.1.4
Ben Darnell [Tue, 4 Jun 2024 18:07:43 +0000 (14:07 -0400)] 
Merge pull request #3377 from tornadoweb/dependabot/pip/jinja2-3.1.4

build(deps): bump jinja2 from 3.1.3 to 3.1.4

3 days agoMerge pull request #3383 from bdarnell/ci-update
Ben Darnell [Tue, 4 Jun 2024 18:02:51 +0000 (14:02 -0400)] 
Merge pull request #3383 from bdarnell/ci-update

ci: Update action versions for node deprecation

3 days agoci: Update action versions for node deprecation 3383/head
Ben Darnell [Tue, 4 Jun 2024 01:05:22 +0000 (21:05 -0400)] 
ci: Update action versions for node deprecation

The changes to checkout and setup-python shouldn't have been major
version bumps. upload-artifact and download-artifact should have had
updated node versions on v3 so we don't have to adapt to incompatible
changes here. But anyway, here we are.

build.yml has updates from
https://github.com/pypa/cibuildwheel/blob/main/examples/github-deploy.yml

This commit also moves the pypi upload step to use OIDC instead of
a static token.

4 days agoMerge pull request #3382 from bdarnell/remove-testmethodwrapper
Ben Darnell [Mon, 3 Jun 2024 20:38:31 +0000 (16:38 -0400)] 
Merge pull request #3382 from bdarnell/remove-testmethodwrapper

testing: Replace _TestMethodWrapper with _callTestMethod

4 days agotesting: Replace _TestMethodWrapper with _callTestMethod 3382/head
Ben Darnell [Mon, 3 Jun 2024 19:49:59 +0000 (15:49 -0400)] 
testing: Replace _TestMethodWrapper with _callTestMethod

Overriding _callTestMethod (which was introduced in python 3.8) is a
less hacky way to detect tests that fail to use ``@gen_test`` where
needed. It's not documented, but since Python 3.11 has introduced a
similar check to the standard library we'll be able to remove it in the
near future.

The major impetus for this change is an incompatibility with
Pytest 8.2, which has made a change that tries to instantiate test
classes at discovery time without an existing method name.

Fixes #3375
Closes #3374

11 days agotemplate: type BaseLoader autoescape kwarg as optional 3381/head
Philippe Cavalaria [Tue, 28 May 2024 08:54:08 +0000 (10:54 +0200)] 
template: type BaseLoader autoescape kwarg as optional

3 weeks agoweb: More accurate typing for get_{body,query}_argument() 3378/head
Philippe Cavalaria [Fri, 17 May 2024 10:41:44 +0000 (12:41 +0200)] 
web: More accurate typing for get_{body,query}_argument()

Use the same overload technique as get_argument().

Fixes https://github.com/tornadoweb/tornado/issues/3336

4 weeks agobuild(deps): bump jinja2 from 3.1.3 to 3.1.4 3377/head
dependabot[bot] [Mon, 6 May 2024 20:43:46 +0000 (20:43 +0000)] 
build(deps): bump jinja2 from 3.1.3 to 3.1.4

Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.3 to 3.1.4.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.3...3.1.4)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
8 weeks agoMerge pull request #3371 from tornadoweb/dependabot/pip/idna-3.7
Ben Darnell [Fri, 12 Apr 2024 14:24:33 +0000 (10:24 -0400)] 
Merge pull request #3371 from tornadoweb/dependabot/pip/idna-3.7

build(deps): bump idna from 3.4 to 3.7

8 weeks agobuild(deps): bump idna from 3.4 to 3.7 3371/head
dependabot[bot] [Fri, 12 Apr 2024 01:57:06 +0000 (01:57 +0000)] 
build(deps): bump idna from 3.4 to 3.7

Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
3 months agoMerge pull request #3357 from danigm/openssl-3.2
Ben Darnell [Sun, 3 Mar 2024 17:04:16 +0000 (12:04 -0500)] 
Merge pull request #3357 from danigm/openssl-3.2

OpenSSL 3.2 compatibility

4 months agoOpenSSL 3.2 compatibility 3357/head
Daniel Garcia Moreno [Mon, 15 Jan 2024 08:48:00 +0000 (09:48 +0100)] 
OpenSSL 3.2 compatibility

Fix https://github.com/tornadoweb/tornado/issues/3355

4 months agoMerge pull request #3356 from tornadoweb/dependabot/pip/jinja2-3.1.3
Ben Darnell [Fri, 12 Jan 2024 01:45:58 +0000 (20:45 -0500)] 
Merge pull request #3356 from tornadoweb/dependabot/pip/jinja2-3.1.3

build(deps): bump jinja2 from 3.1.2 to 3.1.3

4 months agobuild(deps): bump jinja2 from 3.1.2 to 3.1.3 3356/head
dependabot[bot] [Thu, 11 Jan 2024 20:27:48 +0000 (20:27 +0000)] 
build(deps): bump jinja2 from 3.1.2 to 3.1.3

Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.3)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
6 months agoMerge pull request #3352 from bdarnell/master v6.4.0
Ben Darnell [Wed, 29 Nov 2023 03:18:59 +0000 (22:18 -0500)] 
Merge pull request #3352 from bdarnell/master

Set version to 6.4 final

6 months agoSet version to 6.4 final 3352/head
Ben Darnell [Wed, 29 Nov 2023 02:55:46 +0000 (21:55 -0500)] 
Set version to 6.4 final

6 months agoMerge pull request #3348 from bdarnell/iostream-hostname-test v6.4.0b1
Ben Darnell [Thu, 16 Nov 2023 01:21:57 +0000 (20:21 -0500)] 
Merge pull request #3348 from bdarnell/iostream-hostname-test

iostream_test: Test check_hostname functionality.

6 months agoiostream_test: Don't require server-side log on windows 3348/head
Ben Darnell [Tue, 14 Nov 2023 03:11:59 +0000 (22:11 -0500)] 
iostream_test: Don't require server-side log on windows

6 months agoiostream_test: Test check_hostname functionality.
Ben Darnell [Tue, 14 Nov 2023 03:02:32 +0000 (22:02 -0500)] 
iostream_test: Test check_hostname functionality.

In #3337, the removal of ssl.match_hostname revealed that we did not
have any test coverage of hostname checking in tornado.iostream.
Since we were forced to remove the manual check that we had in place
for old versions of Python, we need a test to make sure that we didn't
inadvertently break hostname checking.

7 months agoMerge pull request #3341 from bdarnell/more-utcnow
Ben Darnell [Thu, 2 Nov 2023 01:48:50 +0000 (21:48 -0400)] 
Merge pull request #3341 from bdarnell/more-utcnow

web,demos: Remove more uses of deprecated datetime utc methods

7 months agoweb,demos: Remove more uses of deprecated datetime utc methods 3341/head
Ben Darnell [Thu, 2 Nov 2023 01:40:54 +0000 (21:40 -0400)] 
web,demos: Remove more uses of deprecated datetime utc methods

Add a simple test case to give us some basic coverage of this
code path.

Closes #3335

7 months agoMerge pull request #3339 from tornadoweb/dependabot/pip/urllib3-1.26.18
Ben Darnell [Sun, 29 Oct 2023 23:57:55 +0000 (19:57 -0400)] 
Merge pull request #3339 from tornadoweb/dependabot/pip/urllib3-1.26.18

build(deps): bump urllib3 from 1.26.17 to 1.26.18

7 months agoMerge pull request #3332 from bdarnell/selector-thread-atexit
Ben Darnell [Sun, 29 Oct 2023 23:56:38 +0000 (19:56 -0400)] 
Merge pull request #3332 from bdarnell/selector-thread-atexit

Revert "asyncio: Remove atexit hook"

7 months agobuild(deps): bump urllib3 from 1.26.17 to 1.26.18 3339/head
dependabot[bot] [Wed, 18 Oct 2023 01:28:06 +0000 (01:28 +0000)] 
build(deps): bump urllib3 from 1.26.17 to 1.26.18

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.17 to 1.26.18.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.17...1.26.18)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
7 months agotest: Close the thread pool in run_on_executor test 3332/head
Ben Darnell [Wed, 11 Oct 2023 00:39:25 +0000 (20:39 -0400)] 
test: Close the thread pool in run_on_executor test

If this executor was left around it would be GC'd at an unpredictable
time and would often be reported as a failure in other circlerefs tests.
(For unknown reasons this would occur most often in i686 (i.e. 32-bit)
linux builds).

7 months agoRevert "asyncio: Remove atexit hook"
Ben Darnell [Tue, 3 Oct 2023 01:39:39 +0000 (21:39 -0400)] 
Revert "asyncio: Remove atexit hook"

This reverts commit 62363740c1cc0e137ff4344c3afc3d52e070f200.

We are again seeing hangs at shutdown in
SyncHTTPClientTest.test_destructor_log. Maybe putting this back will
help.

7 months agoMerge pull request #3337 from bdarnell/py312-updates
Ben Darnell [Sat, 14 Oct 2023 02:46:47 +0000 (22:46 -0400)] 
Merge pull request #3337 from bdarnell/py312-updates

Updates for python 3.12 final

7 months ago*: Lint on the newest version of python too. 3337/head
Ben Darnell [Sat, 14 Oct 2023 02:39:41 +0000 (22:39 -0400)] 
*: Lint on the newest version of python too.

We previously only typechecked on the oldest version of python we
supported, incorrectly assuming nothing we depended on would be
removed. Now we typecheck on the latest version of python.

Assume support for modern version of ssl and remove some pre-SNI
code paths which rely on functions that are now removed.

7 months agodocs: Update intersphinx references for python 3.12
Ben Darnell [Sat, 14 Oct 2023 01:27:20 +0000 (21:27 -0400)] 
docs: Update intersphinx references for python 3.12

Intersphinx links are currently an unpinned dependency, so when
a new version of python is released it's possible (although relatively
rare) for it to break our links. 3.12 removed a few members of
the ssl module.

8 months agoMerge pull request #3333 from tornadoweb/dependabot/pip/urllib3-1.26.17
Ben Darnell [Sun, 8 Oct 2023 18:18:49 +0000 (14:18 -0400)] 
Merge pull request #3333 from tornadoweb/dependabot/pip/urllib3-1.26.17

build(deps): bump urllib3 from 1.26.14 to 1.26.17

8 months agobuild(deps): bump urllib3 from 1.26.14 to 1.26.17 3333/head
dependabot[bot] [Tue, 3 Oct 2023 01:47:22 +0000 (01:47 +0000)] 
build(deps): bump urllib3 from 1.26.14 to 1.26.17

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.14 to 1.26.17.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.14...1.26.17)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
8 months agoMerge pull request #3331 from bdarnell/wintest
Ben Darnell [Tue, 3 Oct 2023 01:44:48 +0000 (21:44 -0400)] 
Merge pull request #3331 from bdarnell/wintest

ci: Add windows to the main test config

8 months agoci: Add windows to the main test config 3331/head
Ben Darnell [Sat, 30 Sep 2023 19:39:53 +0000 (15:39 -0400)] 
ci: Add windows to the main test config

I've caused enough broken builds that aren't caught until the final
release pipeline; time to add this to the main test config.

8 months agouse typing.NamedTuple instead of collections.namedtuple 3330/head
Matthew Lynch [Fri, 29 Sep 2023 17:41:59 +0000 (12:41 -0500)] 
use typing.NamedTuple instead of collections.namedtuple

8 months agoMerge pull request #3325 from bdarnell/version-6.4b1
Ben Darnell [Wed, 27 Sep 2023 00:57:12 +0000 (20:57 -0400)] 
Merge pull request #3325 from bdarnell/version-6.4b1

Set version number to 6.4b1

8 months agoSet version number to 6.4b1 3325/head
Ben Darnell [Wed, 27 Sep 2023 00:52:14 +0000 (20:52 -0400)] 
Set version number to 6.4b1

8 months agoMerge pull request #3324 from bdarnell/relnotes-6.4
Ben Darnell [Wed, 27 Sep 2023 00:50:45 +0000 (20:50 -0400)] 
Merge pull request #3324 from bdarnell/relnotes-6.4

docs: Release notes for 6.4.0

8 months agodocs: Release notes for 6.4.0 3324/head
Ben Darnell [Wed, 27 Sep 2023 00:16:00 +0000 (20:16 -0400)] 
docs: Release notes for 6.4.0

9 months agoMerge pull request #3308 from TnTomato/fix-WebSocketClientConnection-parameter
Ben Darnell [Sat, 2 Sep 2023 14:03:40 +0000 (10:03 -0400)] 
Merge pull request #3308 from TnTomato/fix-WebSocketClientConnection-parameter

Fix WebSocketClientConnection parameter

9 months agoMerge pull request #3317 from bdarnell/escape-updates
Ben Darnell [Wed, 23 Aug 2023 01:42:27 +0000 (21:42 -0400)] 
Merge pull request #3317 from bdarnell/escape-updates

escape: Use the standard library where possible

9 months agoescape: Remove noqa: F811 tags from overloads 3317/head
Ben Darnell [Wed, 23 Aug 2023 01:33:44 +0000 (21:33 -0400)] 
escape: Remove noqa: F811 tags from overloads

Newer versions of pyflakes no longer require this.

9 months agoescape: Use the standard library where possible
Ben Darnell [Wed, 23 Aug 2023 01:27:05 +0000 (21:27 -0400)] 
escape: Use the standard library where possible

Many of these functions were necessary in Python 2, but are now
redundant. We can simply use the standard library in many cases.
The only major change is in xhtml_unescape, where we now reject
invalid character references such as surrogates and control characters.

Update docs throughout to be more specific about differences from the
standard library. Also be more complete about the ``plus`` option to
the url escaping functions.

Fixes #3186

9 months agoMerge pull request #3316 from bdarnell/fix-docs-build
Ben Darnell [Wed, 23 Aug 2023 00:17:22 +0000 (20:17 -0400)] 
Merge pull request #3316 from bdarnell/fix-docs-build

docs: Fix build after readthedocs/readthedocs.org#10638

9 months agodocs: Fix build after readthedocs/readthedocs.org#10638 3316/head
Ben Darnell [Wed, 23 Aug 2023 00:01:34 +0000 (20:01 -0400)] 
docs: Fix build after readthedocs/readthedocs.org#10638

The old magic for sphinx_rtd_theme has been removed; now we should
handle the theme in the same way we do for local builds.

9 months agoMerge pull request #3315 from bdarnell/circlerefs
Ben Darnell [Tue, 22 Aug 2023 23:49:02 +0000 (19:49 -0400)] 
Merge pull request #3315 from bdarnell/circlerefs

ioloop,concurrent: Fix reference cycles

9 months agotest: Skip circlerefs test on pypy 3315/head
Ben Darnell [Tue, 22 Aug 2023 13:28:13 +0000 (09:28 -0400)] 
test: Skip circlerefs test on pypy

Pypy doesn't have the same refcount fast-path as cpython so the
gc behavior is different and this test is irrelevant.

9 months agotest: Fix circlerefs test on python 3.10 and before
Ben Darnell [Tue, 22 Aug 2023 03:14:49 +0000 (23:14 -0400)] 
test: Fix circlerefs test on python 3.10 and before

Local/attribute dicts are reported a bit differently here.

9 months agoioloop,concurrent: Fix reference cycles
Ben Darnell [Tue, 22 Aug 2023 03:03:39 +0000 (23:03 -0400)] 
ioloop,concurrent: Fix reference cycles

In a few places we were referring to a future via a closure instead
of using the reference passed as an argument to the callback.  This
sometimes causes a reference cycle that can slow GC. This commit
adds a test which covers two of the cases (chain_future and the
concurrent.future branch of add_future) while the third was found by
inspecting other calls to add_done_callback for obvious instances of
this pattern.

Fixes #2620

9 months agotest: Refactor circlerefs script into a test
Ben Darnell [Tue, 22 Aug 2023 02:20:34 +0000 (22:20 -0400)] 
test: Refactor circlerefs script into a test

This script was only ever run irregularly on its own; bring it in
to the test suite so it can be run automatically.

9 months agoMerge pull request #3312 from bdarnell/destructor-log-timeout
Ben Darnell [Sun, 13 Aug 2023 00:55:15 +0000 (20:55 -0400)] 
Merge pull request #3312 from bdarnell/destructor-log-timeout

httpclient_test: Increase test_destructor_log timeout

9 months agohttpclient_test: Increase test_destructor_log timeout 3312/head
Ben Darnell [Sun, 13 Aug 2023 00:42:15 +0000 (20:42 -0400)] 
httpclient_test: Increase test_destructor_log timeout

This test has recently become flaky on windows CI, and before
investigating further, see if it's just because the CI machines are
overloaded and subprocesses are slower on windows.

9 months agoMerge pull request #3309 from bdarnell/relnotes-633
Ben Darnell [Fri, 11 Aug 2023 15:40:19 +0000 (11:40 -0400)] 
Merge pull request #3309 from bdarnell/relnotes-633

Release notes for 6.3.3

9 months agoRelease notes for 6.3.3 3309/head
Ben Darnell [Fri, 11 Aug 2023 02:38:19 +0000 (22:38 -0400)] 
Release notes for 6.3.3

9 months agoFix WebSocketClientConnection parameter 3308/head
Chengzzzi [Fri, 11 Aug 2023 09:32:59 +0000 (17:32 +0800)] 
Fix WebSocketClientConnection parameter

9 months agoMerge pull request #3306 from bdarnell/fix-ci
Ben Darnell [Fri, 11 Aug 2023 01:48:27 +0000 (21:48 -0400)] 
Merge pull request #3306 from bdarnell/fix-ci

httpserver_test: Add ExpectLog to fix CI

9 months agohttpserver_test: Add ExpectLog to fix CI 3306/head
Ben Darnell [Fri, 11 Aug 2023 01:41:40 +0000 (21:41 -0400)] 
httpserver_test: Add ExpectLog to fix CI

The github security advisory feature lets you make private PRs but
it apparently doesn't support CI so this log failure wasn't caught
until after the PR was merged.

9 months agoMerge pull request from GHSA-qppv-j76h-2rpx
Ben Darnell [Fri, 11 Aug 2023 01:05:53 +0000 (21:05 -0400)] 
Merge pull request from GHSA-qppv-j76h-2rpx

http1connection: Make content-length parsing more strict

10 months agohttp1connection: Make content-length parsing more strict
Ben Darnell [Wed, 9 Aug 2023 01:55:02 +0000 (21:55 -0400)] 
http1connection: Make content-length parsing more strict

Content-length and chunk size parsing now strictly matches the RFCs.
We previously used the python int() function which accepted leading
plus signs and internal underscores, which are not allowed by the
HTTP RFCs (it also accepts minus signs, but these are less problematic
in this context since they'd result in errors elsewhere)

It is important to fix this because when combined with certain proxies,
the lax parsing could result in a request smuggling vulnerability (if
both Tornado and the proxy accepted an invalid content-length but
interpreted it differently). This is known to occur with old versions
of haproxy, although the current version of haproxy is unaffected.

10 months agoMerge pull request #3305 from bdarnell/redirect-test-windows
Ben Darnell [Wed, 9 Aug 2023 00:33:06 +0000 (20:33 -0400)] 
Merge pull request #3305 from bdarnell/redirect-test-windows

web_test: Fix open redirect test on windows

10 months agoweb_test: Fix open redirect test on windows 3305/head
Ben Darnell [Wed, 9 Aug 2023 00:23:19 +0000 (20:23 -0400)] 
web_test: Fix open redirect test on windows

Drive letters in windows absolute paths mess up this test,
so remove them and use a path relative to the drive root instead.

10 months agoMerge pull request #3304 from Alnusjaponica/fix-typo
Ben Darnell [Mon, 7 Aug 2023 01:44:12 +0000 (21:44 -0400)] 
Merge pull request #3304 from Alnusjaponica/fix-typo

Fix syntax error in docstring

10 months agoFix syntax error in docstring 3304/head
Shinichi Hemmi [Fri, 4 Aug 2023 04:40:02 +0000 (13:40 +0900)] 
Fix syntax error in docstring

10 months agoMerge pull request #3303 from bdarnell/type-updates
Ben Darnell [Thu, 27 Jul 2023 02:13:29 +0000 (22:13 -0400)] 
Merge pull request #3303 from bdarnell/type-updates

Update mypy/typeshed, update a few types

10 months agoioloop: Annotate run_in_executor returning Future, not Awaitable 3303/head
Ben Darnell [Thu, 27 Jul 2023 02:00:20 +0000 (22:00 -0400)] 
ioloop: Annotate run_in_executor returning Future, not Awaitable

This required a recent update to typeshed/mypy.

Fixes #3093

10 months agolint: Update mypy
Ben Darnell [Thu, 27 Jul 2023 01:55:12 +0000 (21:55 -0400)] 
lint: Update mypy

10 months agobuild: Upgrade pip-tools
Ben Darnell [Thu, 27 Jul 2023 01:51:56 +0000 (21:51 -0400)] 
build: Upgrade pip-tools

Fixes a conflict between pip-tools and pip.

10 months agobuild: Move linters to python 3.11
Ben Darnell [Thu, 27 Jul 2023 01:48:03 +0000 (21:48 -0400)] 
build: Move linters to python 3.11

10 months agoMerge pull request #3302 from bdarnell/autoreload-updates
Ben Darnell [Thu, 27 Jul 2023 01:39:07 +0000 (21:39 -0400)] 
Merge pull request #3302 from bdarnell/autoreload-updates

autoreload: Various updates

10 months agoautoreload: Modernize type annotations 3302/head
Ben Darnell [Thu, 27 Jul 2023 01:17:34 +0000 (21:17 -0400)] 
autoreload: Modernize type annotations

10 months agoautoreload: Remove some code for MacOS 10.5 compatibility
Ben Darnell [Thu, 27 Jul 2023 01:02:12 +0000 (21:02 -0400)] 
autoreload: Remove some code for MacOS 10.5 compatibility

10 months agoautoreload: Remove some code for compatibility with py3.3
Ben Darnell [Thu, 27 Jul 2023 01:01:35 +0000 (21:01 -0400)] 
autoreload: Remove some code for compatibility with py3.3

10 months agoautoreload: Add --until-success flag
Ben Darnell [Thu, 27 Jul 2023 00:15:12 +0000 (20:15 -0400)] 
autoreload: Add --until-success flag

This flag terminates the autoreload loop after the first successful
run. This makes it possible to cleanly shut down a process that is using
"python -m tornado.autoreload" without printing a traceback.

Fixes #2398

10 months agoMerge pull request #3300 from tornadoweb/dependabot/pip/certifi-2023.7.22
Ben Darnell [Wed, 26 Jul 2023 00:18:21 +0000 (20:18 -0400)] 
Merge pull request #3300 from tornadoweb/dependabot/pip/certifi-2023.7.22

build(deps): bump certifi from 2022.12.7 to 2023.7.22

10 months agobuild(deps): bump certifi from 2022.12.7 to 2023.7.22 3300/head
dependabot[bot] [Tue, 25 Jul 2023 21:07:47 +0000 (21:07 +0000)] 
build(deps): bump certifi from 2022.12.7 to 2023.7.22

Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.12.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2022.12.07...2023.07.22)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
10 months agoautoreload: Support directories in CLI wrapper
Ben Darnell [Sun, 23 Jul 2023 02:10:18 +0000 (22:10 -0400)] 
autoreload: Support directories in CLI wrapper

A previous commit added support for using autoreload within programs
that were started as directories; this commit supports them when
run with the -m tornado.autoreload wrapper.

This change may have side effects for file mode since we now use
runpy.run_path instead of executing the file by hand (I don't think
the run_path function existed when this code was originally written).

10 months agoautoreload_test: Reduce repetition
Ben Darnell [Sun, 23 Jul 2023 01:42:22 +0000 (21:42 -0400)] 
autoreload_test: Reduce repetition

10 months agoautoreload: Switch to a real option parser
Ben Darnell [Sun, 23 Jul 2023 01:09:36 +0000 (21:09 -0400)] 
autoreload: Switch to a real option parser

This will make it easier to add other options (for #2398)

10 months agoautoreload: Support the ability to run a directory instead of a module
Ben Darnell [Fri, 14 Jul 2023 00:57:11 +0000 (20:57 -0400)] 
autoreload: Support the ability to run a directory instead of a module

Running a directory has some but not all of the behavior of
running a module, including setting __spec__, so we must be careful
not to break things by assuming that __spec__ means module mode.

Fixes #2855