]>
git.ipfire.org Git - thirdparty/starlette.git/log
Marcelo Trylesinski [Sat, 20 Jul 2024 09:02:20 +0000 (11:02 +0200)]
Accept `None` on `set_cookie(path=...)` (#2612)
Kamil Monicz [Sat, 20 Jul 2024 07:26:57 +0000 (09:26 +0200)]
Add Starlette-Compress to third-party docs (#2642)
* Add Starlette-Compress
* Update docs/third-party-packages.md
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Randy Zwitch [Sat, 20 Jul 2024 07:24:19 +0000 (03:24 -0400)]
docs: add shiny to the frameworks sections (#2645)
rhoboro [Sat, 29 Jun 2024 12:02:09 +0000 (21:02 +0900)]
Fix broken links (#2631)
Marcelo Trylesinski [Tue, 4 Jun 2024 19:47:30 +0000 (21:47 +0200)]
Don't print xfail on the test suite (#2609)
Adrian Garcia Badaracco [Sat, 1 Jun 2024 13:12:34 +0000 (15:12 +0200)]
Allow use of `memoryview` with `Response` (#2577)
Jeremy Epstein [Sat, 1 Jun 2024 13:07:03 +0000 (23:07 +1000)]
Send 404 instead of 500 when filename requested is too long on `StaticFiles` (#2583)
* Make "Filename too long" return 404 not 500
* Simplify code source
* Correct comment
---------
Co-authored-by: Jeremy Epstein <jeremy.epstein@seertechsolutions.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Sat, 1 Jun 2024 13:04:43 +0000 (15:04 +0200)]
Update type hints based on `jinja2` (#2604)
* Update type hints based on jinja2
* Pin anyio
julien4215 [Thu, 25 Apr 2024 06:49:38 +0000 (08:49 +0200)]
Fix documentation on client address type (#2580)
Marcelo Trylesinski [Tue, 23 Apr 2024 19:24:12 +0000 (21:24 +0200)]
Remove Esmerald from third party docs (#2578)
Bas Schoenmaeckers [Mon, 22 Apr 2024 17:15:24 +0000 (19:15 +0200)]
Allow returning memoryview in StreamingResponse (#2576)
Sebastian Kreft [Sat, 20 Apr 2024 08:26:15 +0000 (04:26 -0400)]
refactor: check endpoint handler is async only once (#2536)
* refactor: check endpoint handler is async only once
We improve the dispatch in the routing module to only check once whether the handler is async. This gives an improvement of 2.5% (sync), 1.82% (async) in the number of requests/s. The average latency decreased 1.6% (sync) and 1.5% (async).
Note that we had to use a cast in the helper function, as the typeguard does not work for the negative case. In the main branch the code is working without a cast, because the typeguard return type is in practice `AwaitableCAllable[Any]`, which end up swallowing the other types in the union.
Benchmarking
We use a simple json app, with both a sync and async endpoint, and the wrk tool to get the measurements.
The measuerements were done on a Macbook Pro with M1 chip, 16GB of memory and macOS 12.3. The Python version used for the tests is Python 3.12.2, and the uvicorn version is 0.27.1
Before
```
$ wrk http://localhost:8000/sync
Running 10s test @ http://localhost:8000/sync
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 733.77us 55.57us 3.21ms 78.35%
Req/Sec 6.84k 147.06 7.15k 87.13%
137474 requests in 10.10s, 18.35MB read
Requests/sec: 13610.69
Transfer/sec: 1.82MB
$ wrk http://localhost:8000/async
Running 10s test @ http://localhost:8000/async
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 717.14us 49.05us 1.83ms 71.11%
Req/Sec 7.00k 112.14 7.36k 76.24%
140613 requests in 10.10s, 18.77MB read
Requests/sec: 13922.97
Transfer/sec: 1.86MB
````
After
```
$ wrk http://localhost:8000/sync
Running 10s test @ http://localhost:8000/sync
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 721.34us 202.40us 11.13ms 99.32%
Req/Sec 7.01k 230.04 7.62k 94.00%
139558 requests in 10.00s, 18.63MB read
Requests/sec: 13956.14
Transfer/sec: 1.86MB
$ wrk http://localhost:8000/async
Running 10s test @ http://localhost:8000/async
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 706.04us 109.90us 7.46ms 98.30%
Req/Sec 7.12k 136.09 7.39k 90.59%
143188 requests in 10.10s, 19.12MB read
Requests/sec: 14176.95
Transfer/sec: 1.89MB
```
The app used for the test is as follows
```python
from starlette.applications import Starlette
from starlette.responses import JSONResponse
from starlette.routing import Route
import uvicorn
async def async_page(request):
return JSONResponse({'status': 'ok'})
async def sync_page(request):
return JSONResponse({'status': 'ok'})
app = Starlette(routes=[
Route('/async', async_page),
Route('/sync', sync_page),
])
if __name__ == "__main__":
uvicorn.run("app:app", port=8000, log_level="critical")
```
* Apply PR suggestion
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Pierre Delagrave [Sat, 20 Apr 2024 07:54:26 +0000 (03:54 -0400)]
Fail fast on invalid `Jinja2Template` instantiation parameters (#2568)
Calling `Jinja2Template()` with both `directory` and `env` shouldn't be allowed. When both parameters were used, the passed `env` was silently ignored in favor of creating a new one with the provided `directory` and the deprecated `env_options`.
Daniel Erenrich [Wed, 17 Apr 2024 17:55:46 +0000 (10:55 -0700)]
Fix typo in `SessionMiddleware` docs (#2559)
Soul Lee [Mon, 15 Apr 2024 11:10:17 +0000 (20:10 +0900)]
Update SessionMiddleware and TrustedHostMiddleware Documentation (#2572)
* Add 'path' argument in SessionMiddleware docs to reflect its presence in the code.
* Add 'www_redirect' argument in TrustedHostMiddleware docs to reflect its presence in the code.
Marcelo Trylesinski [Fri, 29 Mar 2024 09:47:45 +0000 (10:47 +0100)]
Remove old TODO on `scripts/check` (#2554)
Jun-Ah 준아 [Mon, 25 Mar 2024 17:57:47 +0000 (02:57 +0900)]
Add missing `compresslevel` parameter on docs (#2553)
* Add missing compresslevel parameter on docs
The compresslevel parameter was added in #1128.
But, it was not added to the document, so an explanation was added.
* Update docs/middleware.md
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Sun, 24 Mar 2024 17:19:36 +0000 (19:19 +0200)]
Add tests to `test_datastructure` (#2505)
* Add tests to test_datastructure
* Update tests
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Tue, 5 Mar 2024 16:08:44 +0000 (16:08 +0000)]
Version 0.37.2 (#2533)
* Version 0.37.2
* Update docs/release-notes.md
dependabot[bot] [Sat, 2 Mar 2024 12:35:35 +0000 (05:35 -0700)]
Bump the python-packages group with 7 updates (#2532)
* Bump the python-packages group with 7 updates
Bumps the python-packages group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [coverage](https://github.com/nedbat/coveragepy) | `7.4.1` | `7.4.3` |
| [ruff](https://github.com/astral-sh/ruff) | `0.1.15` | `0.3.0` |
| [typing-extensions](https://github.com/python/typing_extensions) | `4.9.0` | `4.10.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `8.0.0` | `8.0.2` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.6` | `9.5.12` |
| [build](https://github.com/pypa/build) | `1.0.3` | `1.1.1` |
| [twine](https://github.com/pypa/twine) | `4.0.2` | `5.0.0` |
Updates `coverage` from 7.4.1 to 7.4.3
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.4.1...7.4.3)
Updates `ruff` from 0.1.15 to 0.3.0
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.15...v0.3.0)
Updates `typing-extensions` from 4.9.0 to 4.10.0
- [Release notes](https://github.com/python/typing_extensions/releases)
- [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md)
- [Commits](https://github.com/python/typing_extensions/compare/4.9.0...4.10.0)
Updates `pytest` from 8.0.0 to 8.0.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.0...8.0.2)
Updates `mkdocs-material` from 9.5.6 to 9.5.12
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.6...9.5.12)
Updates `build` from 1.0.3 to 1.1.1
- [Release notes](https://github.com/pypa/build/releases)
- [Changelog](https://github.com/pypa/build/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/build/compare/1.0.3...1.1.1)
Updates `twine` from 4.0.2 to 5.0.0
- [Release notes](https://github.com/pypa/twine/releases)
- [Changelog](https://github.com/pypa/twine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pypa/twine/compare/4.0.2...5.0.0)
---
updated-dependencies:
- dependency-name: coverage
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: typing-extensions
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: pytest
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: mkdocs-material
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: build
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: twine
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
...
Signed-off-by: dependabot[bot] <support@github.com>
* Update requirements.txt
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Amin Alaee [Thu, 29 Feb 2024 12:55:04 +0000 (13:55 +0100)]
Revert "Turn `scope["client"]` to `None` on `TestClient` (#2377)" (#2525)
* Revert "Turn `scope["client"]` to `None` on `TestClient` (#2377)"
This reverts commit
483849a466a2bfc121f5a367339e1aa3ed20344b .
* format
* Add type hints
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Thu, 29 Feb 2024 10:16:42 +0000 (11:16 +0100)]
Enforce `__future__.annotations` (#2483)
Takeshi OSOEKAWA [Mon, 26 Feb 2024 08:42:52 +0000 (17:42 +0900)]
Remove deprecated `app` argument passed to `httpx.Client` on the `TestClient` (#2526)
Massaki [Thu, 15 Feb 2024 08:27:20 +0000 (05:27 -0300)]
Add `bytes` to `_RequestData` type (#2510)
Timofey Vasenin [Fri, 9 Feb 2024 21:43:54 +0000 (04:43 +0700)]
Version 0.37.1 (#2498)
* Version 0.37.1
* Update docs/release-notes.md
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Fri, 9 Feb 2024 21:39:42 +0000 (23:39 +0200)]
Remove mypy skip flags (#2497)
* Remove flags
* Apply suggestions from code review
* Remove mypy overrides
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Fri, 9 Feb 2024 09:29:28 +0000 (11:29 +0200)]
Add type hints to `test_responses.py` (#2488)
* Add type hints to test_responses.py
* Update tests/test_responses.py
* Linter fix
* Apply suggestions from code review
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Fri, 9 Feb 2024 09:13:38 +0000 (11:13 +0200)]
Add type hints to `test_testclient.py` (#2493)
* Add type hints to test_testclient.py
* Fix check errors
* Apply suggestions from code review
* Use ASGIInstance instead
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Fri, 9 Feb 2024 09:07:45 +0000 (11:07 +0200)]
Add type hints to `test_templates.py` (#2492)
* Add type hints to test_templates.py
* Remove any
* nitpick
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Fri, 9 Feb 2024 08:58:52 +0000 (10:58 +0200)]
Add type hints to `test_staticfiles.py` (#2491)
* Add type hints to test_staticfiles.py
* Remove any
* Remove ParamSpec
* Remove useless conditional
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Wed, 7 Feb 2024 20:17:51 +0000 (22:17 +0200)]
Add type hints to `test_routing.py` (#2489)
* Add type hints to test_routing.py
* Apply suggestions from code review
* Fix check errors
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Wed, 7 Feb 2024 19:56:21 +0000 (21:56 +0200)]
Add type hints to `test_websockets.py` (#2494)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Wed, 7 Feb 2024 18:47:23 +0000 (20:47 +0200)]
Add type hints to `test_schemas.py` (#2490)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Tue, 6 Feb 2024 22:01:44 +0000 (00:01 +0200)]
Add type hints to `test_formparsers.py` (#2480)
* added type annotations to test_formparsers.py
* Apply suggestions from code review
* Apply suggestions from code review
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Mathias Hauser [Tue, 6 Feb 2024 21:58:35 +0000 (22:58 +0100)]
Warn instead of exception for missing env file (#2485)
Scirlat Danut [Tue, 6 Feb 2024 20:47:45 +0000 (22:47 +0200)]
Add type hints to `test_authentication.py` (#2472)
* added type annotations to test_authentication.py
* fixed types
* Apply suggestions from code review
* Fix linting
* Fix linting
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Tue, 6 Feb 2024 20:30:47 +0000 (22:30 +0200)]
Add type hints to `test_applications.py` (#2471)
* added type annotations to test_applications.py
* requested changes
* Apply suggestions from code review
* Apply suggestions from code review
* Update tests/test_applications.py
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Tue, 6 Feb 2024 20:18:43 +0000 (22:18 +0200)]
Add type hints to `test_requests.py` (#2481)
* added type annotations to test_requests.py
* requested changes
* indentations
* typos
* typos
* Apply suggestions from code review
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Mon, 5 Feb 2024 10:46:34 +0000 (12:46 +0200)]
Add type hints to `test_gzip.py` (#2464)
* added type annotations to test_gzip.py
* Apply suggestions from code review
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Mon, 5 Feb 2024 06:54:55 +0000 (07:54 +0100)]
Version 0.37.0 (#2457)
Scirlat Danut [Sun, 4 Feb 2024 21:06:00 +0000 (23:06 +0200)]
Added type annotations to test_endpoints.py (#2478)
* added type annotations to test_endpoints.py
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Sun, 4 Feb 2024 20:54:16 +0000 (22:54 +0200)]
Added type annotations to test_error.py (#2462)
* added type annotations to test_error.py
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Kristján Valur Jónsson [Sun, 4 Feb 2024 20:16:10 +0000 (20:16 +0000)]
Support the WebSocket Denial Response ASGI extension (#2041)
* supply asgi_extensions to TestClient
* Add WebSocket.send_response()
* Add response support for WebSocket testclient
* fix test for filesystem line-endings
* lintint
* support websocket.http.response extension by default
* Improve coverate
* Apply suggestions from code review
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Undo unrelated change
* fix incorrect error message
* Update starlette/websockets.py
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* formatting
* Re-introduce close-code and close-reason to WebSocketReject
* Make sure the "websocket.connect" message is received in tests
* Deliver a websocket.disconnect message to the app even if it closes/rejects itself.
* Add test for filling out missing `websocket.disconnect` code
* Add rejection headers. Expand tests.
* Fix types, headers in message are `bytes` tuples.
* Minimal WebSocket Denial Response implementation
* Revert "Minimal WebSocket Denial Response implementation"
This reverts commit
7af10ddcfa5423c18953cf5d1317cb5aa30a014c .
* Rename to send_denial_response and update documentation
* Remove the app_disconnect_msg. This can be added later in a separate PR
* Remove status code 1005 from this PR
* Assume that the application has tested for the extension before sending websocket.http.response.start
* Rename WebSocketReject to WebSocketDenialResponse
* Remove code and status from WebSocketDenialResponse.
Just send a regular WebSocketDisconnect even when connection is rejected with close()
* Raise an exception if attempting to send a http response and server does not support it.
* WebSocketDenialClose and WebSocketDenialResponse
These are both instances of WebSocketDenial.
* Update starlette/testclient.py
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Revert "WebSocketDenialClose and WebSocketDenialResponse"
This reverts commit
71b76e3f1c87064fe8458ff9d4ad0b242cbf15e7 .
* Rename parameters, member variables
* Use httpx.Response as the base for WebSocketDenialResponse.
* Apply suggestions from code review
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
* Update sanity check message
* Remove un-needed function
* Expand error message test regex
* Add type hings to test methods
* Add doc string to test.
* Fix mypy complaining about mismatching parent methods.
* nitpick & remove test
* Simplify the documentation
* Update starlette/testclient.py
* Update starlette/testclient.py
* Remove an unnecessary test
* there is no special "close because of rejection" in the testclient anymore.
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Sun, 4 Feb 2024 18:39:34 +0000 (20:39 +0200)]
Added type annotations to test_convertors.py (#2476)
* added type annotations to test_convertors.py
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Sun, 4 Feb 2024 18:33:06 +0000 (20:33 +0200)]
Added type annotations to test_config.py (#2475)
* added type annotations to test_config.py
* Apply suggestions from code review
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Scirlat Danut [Sun, 4 Feb 2024 18:30:43 +0000 (20:30 +0200)]
added type annotations to test_http_redirect.py (#2465)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 18:27:43 +0000 (20:27 +0200)]
Added type annotations to test_datastructures.py (#2477)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 18:21:41 +0000 (20:21 +0200)]
Added type annotations to test_exceptions.py (#2479)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Marcelo Trylesinski [Sun, 4 Feb 2024 18:15:10 +0000 (19:15 +0100)]
Version 0.36.3 (#2460)
Scirlat Danut [Sun, 4 Feb 2024 17:58:54 +0000 (19:58 +0200)]
Added type annotations to test_session.py (#2466)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 17:15:40 +0000 (19:15 +0200)]
Add type hints to `test_concurency.py` (#2474)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 17:13:09 +0000 (19:13 +0200)]
Add type hints to `conftest.py` (#2469)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 16:50:59 +0000 (18:50 +0200)]
Added type annotations to test__utils.py (#2470)
* added type annotations to test__utils.py
* ignore functools.partial sync type
* ruff fix
* typo
* type ignore
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 16:48:26 +0000 (18:48 +0200)]
Add type hints to `test_background.py` (#2473)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 15:13:48 +0000 (17:13 +0200)]
Add type hints to `test_trusted_host.py` (#2467)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sun, 4 Feb 2024 15:11:13 +0000 (17:11 +0200)]
Add type hints to `test_wsgi.py` (#2468)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Marcelo Trylesinski [Sun, 4 Feb 2024 12:50:31 +0000 (13:50 +0100)]
Create `anyio.Event` on async context (#2459)
* Create `anyio.Event` using a blocking portal
* Use cached property
* Ups
Scirlat Danut [Sat, 3 Feb 2024 20:51:19 +0000 (22:51 +0200)]
Add type hints to `test_cors.py` (#2458)
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Scirlat Danut [Sat, 3 Feb 2024 16:54:21 +0000 (18:54 +0200)]
Add type hints to `test_base.py` (#2445)
* added type annotations to test-base.py
* deleted unused imports
* fixed import order
* conditional import
* conditional import TestClient on types.py
* using string literals when importing in types
* added missing imports
* deleted starlette/types, refactored test_base types
* deleted types
---------
Co-authored-by: Scirlat Danut <scirlatdanut@scirlats-mini.lan>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Sat, 3 Feb 2024 12:39:24 +0000 (13:39 +0100)]
Version 0.36.2 (#2456)
* Version 0.36.2
* Apply suggestions from code review
* Update docs/release-notes.md
Sebastián Ramírez [Sat, 3 Feb 2024 12:34:10 +0000 (13:34 +0100)]
Merge pull request from GHSA-93gm-qmq6-w238
Mikkel Duif [Sat, 3 Feb 2024 08:39:01 +0000 (09:39 +0100)]
Avoid duplicate charset on `Content-Type` (#2443)
* fix(response): avoid duplicated charset
* Update docs/responses.md
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
dependabot[bot] [Sat, 3 Feb 2024 08:01:51 +0000 (08:01 +0000)]
Bump the python-packages group with 4 updates (#2455)
* Bump the python-packages group with 4 updates
Bumps the python-packages group with 4 updates: [coverage](https://github.com/nedbat/coveragepy), [ruff](https://github.com/astral-sh/ruff), [pytest](https://github.com/pytest-dev/pytest) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).
Updates `coverage` from 7.4.0 to 7.4.1
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.4.0...7.4.1)
Updates `ruff` from 0.1.13 to 0.1.15
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.13...v0.1.15)
Updates `pytest` from 7.4.4 to 8.0.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.4...8.0.0)
Updates `mkdocs-material` from 9.5.5 to 9.5.6
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.5...9.5.6)
---
updated-dependencies:
- dependency-name: coverage
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: pytest
dependency-type: direct:production
update-type: version-update:semver-major
dependency-group: python-packages
- dependency-name: mkdocs-material
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
...
Signed-off-by: dependabot[bot] <support@github.com>
* add deprecation warning
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
François Voron [Fri, 26 Jan 2024 12:32:55 +0000 (13:32 +0100)]
Fix nav override for newer version of Mkdocs Material (#2444)
Marcelo Trylesinski [Tue, 23 Jan 2024 08:31:18 +0000 (09:31 +0100)]
Version 0.36.1 (#2440)
Marcelo Trylesinski [Tue, 23 Jan 2024 08:29:01 +0000 (09:29 +0100)]
Downgrade mkdocs-material (#2439)
Marcelo Trylesinski [Tue, 23 Jan 2024 07:42:18 +0000 (08:42 +0100)]
Check if "extensions" in scope before checking the extension (#2438)
Marcelo Trylesinski [Mon, 22 Jan 2024 20:36:10 +0000 (21:36 +0100)]
Version 0.36.0 (#2432)
* Version 0.36.0
* Update release-notes.md
Giovanni Barillari [Mon, 22 Jan 2024 09:44:40 +0000 (10:44 +0100)]
Add support for ASGI `pathsend` extension (#2435)
* add support for ASGI `pathsend` extension
* add test for ASGI `pathsend`
Marcelo Trylesinski [Sat, 20 Jan 2024 17:57:59 +0000 (18:57 +0100)]
Use `__future__.annotations` (#2433)
* Use `__future__.annotations`
* fix linter
Marcelo Trylesinski [Sat, 20 Jan 2024 15:08:22 +0000 (16:08 +0100)]
Raise `WebSocketDisconnect` when `WebSocket.send()` excepts `IOError` (#2425)
* Raise `WebSocketDisconnect` when `WebSocket.send()` excepts `IOError`
* Restrict the IOError
Marcelo Trylesinski [Sat, 20 Jan 2024 13:59:47 +0000 (14:59 +0100)]
Cancel `WebSocketTestSession` on close (#2427)
* Cancel `WebSocketTestSession` on close
* Undo some noise
* Fix test
* Undo pyproject
* Undo anyio bump
* Undo changes on test_authentication
* Always call cancel scope
Mathias Hauser [Sat, 20 Jan 2024 12:06:50 +0000 (13:06 +0100)]
Raise `FileNotFoundError` when the `env_file` parameter on `Config` is not valid (#2422)
* raise error on missing env file
* format
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Sat, 20 Jan 2024 10:43:45 +0000 (11:43 +0100)]
Add PyPI versions supported (#2431)
dependabot[bot] [Sat, 13 Jan 2024 11:02:01 +0000 (04:02 -0700)]
Bump the python-packages group with 5 updates (#2418)
Bumps the python-packages group with 5 updates:
| Package | From | To |
| --- | --- | --- |
| [mypy](https://github.com/python/mypy) | `1.7.1` | `1.8.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.1.9` | `0.1.13` |
| [pytest](https://github.com/pytest-dev/pytest) | `7.4.0` | `7.4.4` |
| [trio](https://github.com/python-trio/trio) | `0.23.2` | `0.24.0` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.1.17` | `9.5.3` |
Updates `mypy` from 1.7.1 to 1.8.0
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.7.1...v1.8.0)
Updates `ruff` from 0.1.9 to 0.1.13
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.9...v0.1.13)
Updates `pytest` from 7.4.0 to 7.4.4
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.0...7.4.4)
Updates `trio` from 0.23.2 to 0.24.0
- [Release notes](https://github.com/python-trio/trio/releases)
- [Commits](https://github.com/python-trio/trio/compare/v0.23.2...v0.24.0)
Updates `mkdocs-material` from 9.1.17 to 9.5.3
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.1.17...9.5.3)
---
updated-dependencies:
- dependency-name: mypy
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: pytest
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: python-packages
- dependency-name: trio
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
- dependency-name: mkdocs-material
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: python-packages
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Marcelo Trylesinski [Sat, 13 Jan 2024 10:48:51 +0000 (11:48 +0100)]
Group dependencies on dependabot updates (#2415)
Marcelo Trylesinski [Fri, 12 Jan 2024 10:06:48 +0000 (11:06 +0100)]
Add type hint on `test_websockets.py` (#2411)
* Add type hint on `test_websockets.py`
* Add type ignore on mock_receive
Marcelo Trylesinski [Thu, 11 Jan 2024 19:57:49 +0000 (20:57 +0100)]
Version 0.35.1 (#2410)
Marcelo Trylesinski [Thu, 11 Jan 2024 19:55:30 +0000 (20:55 +0100)]
Make `typing-extensions` optional again (#2409)
Sebastián Ramírez [Thu, 11 Jan 2024 15:17:18 +0000 (19:17 +0400)]
♻️ Do not use the deprecated `method` parameter in `FileResponse` inside of `StaticFiles` (#2406)
* ♻️ Do not use the deprecated `method` parameter in `FileResponse` inside of` StaticFile`
* ✅ Add test for warning FileResponse with method argument
* 🔊 Remove warning filter for FileResponse with method
Marcelo Trylesinski [Thu, 11 Jan 2024 14:29:36 +0000 (15:29 +0100)]
Version 0.35.0 (#2404)
* Version 0.35.0
* Update release-notes.md
Sebastián Ramírez [Tue, 9 Jan 2024 04:45:30 +0000 (08:45 +0400)]
♻️ Refactor logic to handle `root_path` to keep compatibility with ASGI and compatibility with other non-Starlette-specific libraries like a2wsgi (#2400)
* ✨ Add util to get route path from scope
* ♻️ Refactor extracting the local route_path from the scope, and creating the child scope with its own root_pat, this allows sub-apps (e.g. WSGIMiddleware) to know
where it was mounted, and from which path prefix starts the path its sub-app should handle
* ♻️ Refactor datastructures and request to be conformant with the ASGI spec, respecting root_path
* ✅ Add and update tests for root_path with mounted apps that don't know about Starlette internals (e.g. the route_root_path extension scope key that was added in
* ✅ Update test for root_path, TestClient was not requiring paths under a root_path to pass the root_path, which is what clients would have to do if the app is
mounted.
* 🎨 Fix formatting
* 🎨 Remove type ignore
* 🔥 Remove unnecessary comment
* ✨ Update (deprecated) WSGIMiddleware to be compatible with the updated root_path, taking pieces from a2wsgi
* 🎨 Fix types
* ✅ Update test for WSGIMiddleware with root_path
* 🔥 Remove logic/features not in the original (deprecated) WSGIMiddleware
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Co-authored-by: Aber <me@abersheeran.com>
dependabot[bot] [Mon, 8 Jan 2024 21:26:34 +0000 (21:26 +0000)]
Bump trio from 0.22.2 to 0.23.2 (#2395)
* Bump trio from 0.22.2 to 0.23.2
Bumps [trio](https://github.com/python-trio/trio) from 0.22.2 to 0.23.2.
- [Release notes](https://github.com/python-trio/trio/releases)
- [Commits](https://github.com/python-trio/trio/compare/v0.22.2...v0.23.2)
---
updated-dependencies:
- dependency-name: trio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* Remove AnyIO from requirements.txt
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
dependabot[bot] [Mon, 8 Jan 2024 08:49:23 +0000 (08:49 +0000)]
Bump ruff from 0.1.6 to 0.1.9 (#2396)
* Bump ruff from 0.1.6 to 0.1.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.6 to 0.1.9.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.6...v0.1.9)
---
updated-dependencies:
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* Fix code
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
dependabot[bot] [Mon, 1 Jan 2024 20:36:25 +0000 (21:36 +0100)]
Bump coverage from 7.3.2 to 7.4.0 (#2397)
dependabot[bot] [Mon, 1 Jan 2024 20:18:57 +0000 (13:18 -0700)]
Bump typing-extensions from 4.8.0 to 4.9.0 (#2393)
Bumps [typing-extensions](https://github.com/python/typing_extensions) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/python/typing_extensions/releases)
- [Changelog](https://github.com/python/typing_extensions/blob/main/CHANGELOG.md)
- [Commits](https://github.com/python/typing_extensions/compare/4.8.0...4.9.0)
---
updated-dependencies:
- dependency-name: typing-extensions
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] [Mon, 1 Jan 2024 20:03:12 +0000 (13:03 -0700)]
Bump importlib-metadata from 6.9.0 to 7.0.1 (#2394)
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 6.9.0 to 7.0.1.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v6.9.0...v7.0.1)
---
updated-dependencies:
- dependency-name: importlib-metadata
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] [Mon, 1 Jan 2024 19:35:32 +0000 (12:35 -0700)]
Bump actions/setup-python from 4 to 5 (#2392)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Amin Alaee [Mon, 25 Dec 2023 09:33:09 +0000 (13:03 +0330)]
Turn `scope["client"]` to `None` on `TestClient` (#2377)
* Remove client scope from testclient
* remove test
* Update testclient.py
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
James Braza [Wed, 20 Dec 2023 21:59:58 +0000 (13:59 -0800)]
Use `Iterable` instead `Iterator` on `iterate_in_threadpool` (#2362)
* Fixed AsyncContentStream to be AsyncIterator
* Updating isinstance check too
* Standardizing on Iterable/AsyncIterable
* Moved iterate_in_threadpool to make an iter internally
* Added test of iterate_in_threadpool accepting an Iterable
* Renamed arg to iterator, and fixed type hint in return to be AsyncIterator
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Paweł Rubin [Wed, 20 Dec 2023 21:09:17 +0000 (22:09 +0100)]
Add `*args` to `Middleware` and improve its type hints (#2381)
Co-authored-by: Paweł Rubin <pawel.rubin@ocado.com>
Marcelo Trylesinski [Sat, 16 Dec 2023 15:36:01 +0000 (16:36 +0100)]
Version 0.34.0 (#2368)
Amin Alaee [Sat, 16 Dec 2023 15:05:39 +0000 (16:05 +0100)]
Remove databases package from config docs (#2092)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Vageeshan Mankala [Sat, 16 Dec 2023 15:02:19 +0000 (07:02 -0800)]
Add sentry to the third party packages (#2279)
* Update third-party-packages.md
* Update third-party-packages.md
* improve wording
---------
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Diego Fioravanti [Sat, 16 Dec 2023 14:41:37 +0000 (15:41 +0100)]
Clarify that wildcard and credentials are mutually exclusive (#2210)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Bernardo Gomes [Sat, 16 Dec 2023 14:24:57 +0000 (11:24 -0300)]
Add example on how to use `SessionMiddleware` (#2251)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
neolooong [Sat, 16 Dec 2023 14:13:21 +0000 (22:13 +0800)]
Take weak ETags in consideration on `StaticFiles` (#2334)
Co-authored-by: Kar Petrosyan <92274156+karpetrosyan@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Marcelo Trylesinski [Sat, 16 Dec 2023 13:55:20 +0000 (14:55 +0100)]
Merge URLs properly on TestClient (#2376)
Marcelo Trylesinski [Sat, 16 Dec 2023 12:51:24 +0000 (13:51 +0100)]
Use `ParamSpec` for `run_in_threadpool` (#2375)
Marcelo Trylesinski [Sat, 16 Dec 2023 12:47:54 +0000 (13:47 +0100)]
Deprecate `FileResponse(method=...)` parameter (#2366)