Commit Graph

370 Commits

Author SHA1 Message Date
Eugene Toder
ad5ff87c86
Treat fd=0 as a valid file descriptor with reload/workers (#2927)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-04-30 20:26:13 +02:00
Marcelo Trylesinski
10ddc6dd29
Add ssl_context_factory for custom SSLContext configuration (#2920) 2026-04-28 06:24:24 +00:00
Marcelo Trylesinski
b499bc4510
Eagerly import the ASGI app in the parent process (#2919) 2026-04-27 23:56:45 +02:00
Marcelo Trylesinski
7375b5bf66
Use bytearray for incoming WebSocket message buffer in websockets-sansio (#2917) 2026-04-22 20:11:28 +00:00
Marcelo Trylesinski
d438fb16fe
Support ws_ping_interval and ws_ping_timeout in wsproto implementation (#2916) 2026-04-22 18:33:16 +00:00
Marcelo Trylesinski
3e6b964466
Support ws_max_size in wsproto implementation (#2915) 2026-04-22 19:17:00 +02:00
Marcelo Trylesinski
7f027f8e25
Revert "Emit http.disconnect on server shutdown for streaming responses" (#2829) (#2913) 2026-04-21 10:22:03 +00:00
Marcelo Trylesinski
73a80c3cc8
Add --reset-contextvars flag to isolate ASGI request context (#2912) 2026-04-21 10:46:10 +01:00
Marcelo Trylesinski
45c0b568d3
Revert empty context for ASGI runs (#2911) 2026-04-21 09:51:18 +01:00
Marcelo Trylesinski
850d92656d
Raise helpful ImportError when PyYAML is missing for YAML log config (#2906)
Co-authored-by: Nuno André <mail@nunoand.re>
2026-04-19 10:06:44 +00:00
Marcelo Trylesinski
fdcacb4b83
Accept log_level strings case-insensitively (#2907)
Co-authored-by: Nuno André <mail@nunoand.re>
2026-04-19 10:00:23 +00:00
Marcelo Trylesinski
70f247f9ee
Accept os.PathLike for log_config (#2905)
Co-authored-by: Nuno André <mail@nunoand.re>
2026-04-19 09:57:19 +00:00
Marcelo Trylesinski
18edfa7012
Preserve forwarded client ports in proxy headers middleware (#2903)
Co-authored-by: takeda <411978+takeda@users.noreply.github.com>
2026-04-14 09:56:40 +00:00
Marcelo Trylesinski
77843e06dc
Stabilize websocket keepalive ping test (#2904) 2026-04-14 09:48:53 +00:00
Marcelo Trylesinski
029be08867
Implement websocket keepalive pings for websockets-sansio (#2888) 2026-04-06 07:52:58 +00:00
Sebastián Ramírez
587042d68f
🐛 Emit http.disconnect ASGI receive() event on server shutting down for streaming responses (#2829) 2026-04-03 14:23:03 +00:00
Harsha Vashisht
cd52d34b55
Use native context parameter for create_task on Python 3.11+ (#2859)
## Summary

Both HTTP protocol implementations (`h11_impl.py` and
`httptools_impl.py`) use
`contextvars.Context().run(loop.create_task, ...)` to start ASGI tasks
with a
fresh context. Python 3.11 added a `context=` parameter to
`create_task()`,
which avoids the extra indirection through `Context.run()`.

This has been a known TODO in the codebase for a while. Under
high-concurrency
workloads, the `Context().run()` wrapper adds a small but measurable
overhead
per request compared to the native kwarg, since it has to set up and
tear down
the context activation around the call.

The change uses `sys.version_info` to branch at runtime — 3.11+ gets the
native
kwarg, older versions keep the existing behavior. Coverage pragmas
follow the
existing convention in `_types.py` (`py-lt-311` / `py-gte-311` on the
branch
lines).

---------

Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-03-28 11:45:30 +00:00
Marcelo Trylesinski
1cb8e747e2
Add websocket 500 fallback header test (#2874)
## Summary
- extend the invalid websocket HTTP response regression test
- assert the 500 fallback includes content-length and connection headers

## Testing
- uv run pytest tests/protocols/test_websocket.py -k invalid_status -q
2026-03-28 10:09:29 +00:00
Marcelo Trylesinski
d8f2501316
chore: pre-create Config objects in benchmarks to measure protocol hot paths (#2851)
Config.__init__ calls dictConfig() on every construction, which
dominated benchmark time (~70% for httptools). Pre-creating configs
at module level removes this setup noise so CodSpeed measures the
actual protocol work.
2026-03-16 05:12:05 +01:00
Marcelo Trylesinski
9dbb7836bb
Add WebSocket protocol benchmarks for wsproto and websockets-sansio (#2849)
Benchmark handshake and text frame sending using the same mock
transport approach as HTTP benchmarks. The legacy websockets
implementation is excluded as it manages its own internal tasks.
2026-03-15 17:07:06 +00:00
Marcelo Trylesinski
d072de754f
Add fragmented body benchmark for chunked body accumulation (#2846)
Sends 100KB in 390 x 256-byte chunks to exercise the body += path
that triggers O(n^2) allocation with bytes concatenation.
2026-03-15 16:01:51 +00:00
Marcelo Trylesinski
e300c2c75d
Add CodSpeed benchmark suite for HTTP protocol hot paths (#2844)
* Add CodSpeed benchmark suite for HTTP protocol hot paths

* Suppress mypy operator error on ASGI message body concatenation

* Use OIDC token and pin CodSpeed action to latest commit
2026-03-15 15:37:09 +00:00
Kadir Can Ozden
1fa697651b
Escape brackets and backslash in httptools HEADER_RE regex (#2824)
* Fix broken HEADER_RE regex in httptools HTTP implementation

The character class in HEADER_RE has unescaped [ and ] which causes
the regex to be parsed incorrectly. The ] prematurely closes the
character class after ':', so the remaining characters '={} \t"'
are treated as a literal sequence rather than part of the class.

As a result the regex never matches any invalid header name character
and the validation at line 496 is completely non-functional.

This escapes the brackets and backslash properly inside the
character class so all RFC 7230 header name separators are caught.

* Add tests for invalid HTTP header name validation

* Add comment explaining why no 500 is sent on invalid header name

* Use backticks around response_started in comment

---------

Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-03-15 14:00:30 +00:00
Jonas Haag
a01a33eb8f
Add --limit-max-requests-jitter to stagger worker restarts (#2707)
* feat: max_requests_jitter

* format

* type check

* Fix test

* Add type annotation for `Server.limit_max_requests`

Mypy infers `int` from the first branch and errors on the `None`
assignment in the else branch.

* Use `cached_property` for `Server.limit_max_requests`

Keeps `__init__` clean by moving the jitter computation out.

* Document `--limit-max-requests-jitter` setting

---------

Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-02-15 20:52:08 +00:00
Marcelo Trylesinski
654f2ed7d7
Ensure lifespan shutdown runs when should_exit is set during startup (#2812) 2026-02-15 19:02:12 +00:00
Shahar Evron
a03d9f6f0e
Reduce the log level of 'request limit exceeded' messages (#2788)
Co-authored-by: Shahar Evron <shahar@DS-shahar-MBP.local>
2026-02-15 18:40:14 +00:00
Marcelo Trylesinski
e377de40d0
Add socket path to scope["server"] (#2561)
* Add socket path to scope["server"]

* fix lint

* Address review feedback and update sansio protocol

- Use `if` instead of `elif` after early returns in `get_local_addr`
- Update `server` type in `WebSocketsSansIOProtocol` to support UDS
- Add missing test case for full coverage
2026-02-15 18:34:14 +00:00
Marcelo Trylesinski
0779f7f8a4
Poll for readiness in test_multiprocess_health_check and run_server (#2816)
* Poll for readiness in `test_multiprocess_health_check` and `run_server`

Apply the same polling pattern to `test_multiprocess_health_check` — wait
for all processes to be alive instead of a fixed 1s sleep.

In `run_server`, wait for `server.started` instead of a fixed 0.1s sleep
to avoid connection races on slow setups (e.g. free-threaded Python 3.14).

* Avoid uncovered branch in health check polling loop

* Add pragma: no cover to health check polling loop body
2026-02-15 18:23:26 +00:00
Marcelo Trylesinski
7e9ce2c974
Poll for PID changes in test_multiprocess_sighup instead of fixed sleep (#2815)
The 1-second sleep wasn't always enough for the supervisor to pick up the
signal and complete `restart_all()`, causing flaky failures on macOS 3.14.
2026-02-15 18:12:12 +00:00
dependabot[bot]
7ae2e6375a
chore(deps): bump the python-packages group with 18 updates (#2801)
* chore(deps): bump the python-packages group with 18 updates

Bumps the python-packages group with 18 updates:

| Package | From | To |
| --- | --- | --- |
| [click](https://github.com/pallets/click) | `8.3.0` | `8.3.1` |
| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.1` |
| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.1.0` | `1.1.1` |
| [websockets](https://github.com/python-websockets/websockets) | `13.1` | `16.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.11.9` | `0.14.14` |
| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |
| [pytest-xdist[psutil]](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |
| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |
| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20250402` | `6.0.12.20250915` |
| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.4` |
| [coverage](https://github.com/coveragepy/coveragepy) | `7.8.0` | `7.13.2` |
| [twine](https://github.com/pypa/twine) | `6.1.0` | `6.2.0` |
| [a2wsgi](https://github.com/abersheeran/a2wsgi) | `1.10.8` | `1.10.10` |
| [wsproto](https://github.com/python-hyper/wsproto) | `1.2.0` | `1.3.2` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.21` | `9.7.1` |
| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.18.2` | `2.0.1` |
| [mkdocs-llmstxt](https://github.com/pawamoy/mkdocs-llmstxt) | `0.4.0` | `0.5.0` |


Updates `click` from 8.3.0 to 8.3.1
- [Release notes](https://github.com/pallets/click/releases)
- [Changelog](https://github.com/pallets/click/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/click/compare/8.3.0...8.3.1)

Updates `python-dotenv` from 1.1.1 to 1.2.1
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.1)

Updates `watchfiles` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/samuelcolvin/watchfiles/releases)
- [Commits](https://github.com/samuelcolvin/watchfiles/compare/v1.1.0...v1.1.1)

Updates `websockets` from 13.1 to 16.0
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/13.1...16.0)

Updates `ruff` from 0.11.9 to 0.14.14
- [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/0.11.9...0.14.14)

Updates `pytest` from 8.3.5 to 9.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.3.5...9.0.2)

Updates `pytest-mock` from 3.14.0 to 3.15.1
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.15.1)

Updates `pytest-xdist[psutil]` from 3.6.1 to 3.8.0
- [Release notes](https://github.com/pytest-dev/pytest-xdist/releases)
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v3.6.1...v3.8.0)

Updates `mypy` from 1.15.0 to 1.19.1
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.15.0...v1.19.1)

Updates `types-pyyaml` from 6.0.12.20250402 to 6.0.12.20250915
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

Updates `cryptography` from 46.0.3 to 46.0.4
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.3...46.0.4)

Updates `coverage` from 7.8.0 to 7.13.2
- [Release notes](https://github.com/coveragepy/coveragepy/releases)
- [Changelog](https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst)
- [Commits](https://github.com/coveragepy/coveragepy/compare/7.8.0...7.13.2)

Updates `twine` from 6.1.0 to 6.2.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/6.1.0...6.2.0)

Updates `a2wsgi` from 1.10.8 to 1.10.10
- [Commits](https://github.com/abersheeran/a2wsgi/compare/v1.10.8...v1.10.10)

Updates `wsproto` from 1.2.0 to 1.3.2
- [Changelog](https://github.com/python-hyper/wsproto/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-hyper/wsproto/compare/1.2.0...1.3.2)

Updates `mkdocs-material` from 9.6.21 to 9.7.1
- [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.6.21...9.7.1)

Updates `mkdocstrings-python` from 1.18.2 to 2.0.1
- [Release notes](https://github.com/mkdocstrings/python/releases)
- [Changelog](https://github.com/mkdocstrings/python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/python/compare/1.18.2...2.0.1)

Updates `mkdocs-llmstxt` from 0.4.0 to 0.5.0
- [Release notes](https://github.com/pawamoy/mkdocs-llmstxt/releases)
- [Changelog](https://github.com/pawamoy/mkdocs-llmstxt/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pawamoy/mkdocs-llmstxt/compare/0.4.0...0.5.0)

---
updated-dependencies:
- dependency-name: click
  dependency-version: 8.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: python-dotenv
  dependency-version: 1.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: watchfiles
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: websockets
  dependency-version: '16.0'
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: ruff
  dependency-version: 0.14.14
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pytest
  dependency-version: 9.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: pytest-mock
  dependency-version: 3.15.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: pytest-xdist[psutil]
  dependency-version: 3.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: mypy
  dependency-version: 1.19.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: types-pyyaml
  dependency-version: 6.0.12.20250915
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: cryptography
  dependency-version: 46.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: coverage
  dependency-version: 7.13.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: twine
  dependency-version: 6.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: a2wsgi
  dependency-version: 1.10.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: wsproto
  dependency-version: 1.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: mkdocs-material
  dependency-version: 9.7.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: mkdocstrings-python
  dependency-version: 2.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: mkdocs-llmstxt
  dependency-version: 0.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>

* Keep websockets pinned at 13.1, remove stale type: ignore comments

websockets 16.0 has breaking API changes (removed legacy module
from type stubs, renamed exceptions) that require a separate
migration effort. Keep it at 13.1 for now.

The two removed `type: ignore` comments became unused with mypy 1.19.

---------

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>
2026-02-15 17:53:17 +00:00
t-kawasumi
ae56d07af7
Fix typo: error_occured -> error_occurred (#2776) 2025-12-25 09:26:05 +01:00
Marcelo Trylesinski
19df042c54
Drop Python 3.9 (#2772) 2025-12-21 14:56:01 +01:00
Marcelo Trylesinski
865ce7c0b4
Run strict mypy on test suite (#2771) 2025-12-21 13:35:00 +00:00
Marcelo Trylesinski
5692dfc416
fix(websockets): Send close frame on ASGI return (#2769) 2025-12-21 12:23:26 +01:00
Philip Meier
d94bf28743
explicitly start ASGI run with empty context (#2742)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-12-21 10:55:50 +01:00
Marcelo Trylesinski
69a6ae3198
Improve typing in test_http.py (#2740) 2025-10-23 19:53:31 +00:00
Marcelo Trylesinski
9b3f17a549
Support Python 3.14 (#2723)
Co-authored-by: Jair Henrique <jair.henrique@gmail.com>
2025-10-18 15:38:06 +02:00
Marcelo Trylesinski
3d0d46a704
Raise an exception when calling removed Config.setup_event_loop() (#2709) 2025-09-23 11:56:58 +00:00
secrett2633
016db5f7da
Update repository references from 'encode' to 'Kludex' across documentation and configuration files (#2684) 2025-09-10 21:48:53 +02:00
Nir Geller
52b3ec62a3
Support custom IOLOOPs (#2435)
Co-authored-by: Thomas Grainger <tagrain@gmail.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2025-07-01 19:55:34 +02:00
Marcelo Trylesinski
b9606269a7
Add WebSocketsSansIOProtocol (#2540) 2025-06-24 12:16:26 +02:00
Waket Zheng
ce129ff120
chore: improve type hints (#2638) 2025-05-31 18:00:13 +02:00
Jan Musílek
56a9f68c16
Don't include cwd() when non-empty --reload-dirs is passed (#2598) 2025-04-19 06:08:51 +00:00
Marcelo Trylesinski
4fdfec4adf
docs: mention discord instead of gitter (#2595)
* docs: mention discord instead of gitter

* ignore flaky test
2025-03-09 17:21:57 +01:00
Marcelo Trylesinski
e5f3663925
Speed up test suite with pytest-xdist (#2537)
* Speed up test suite with pytest-xdist

* add combine

* Check if loadgroup solves windows issues

* Add xdist group to multiprocess tests

* Skip reload tests on windows and mac

* skip non linux

* skip non linux

* add not linux

* add last not linux

* skip another

* skip another

* Update tests/supervisors/test_reload.py
2025-03-09 16:49:07 +01:00
Carl George
8136fb6832
Avoid test dependency on typing_extensions (#2590) 2025-03-05 08:34:30 +01:00
Marcelo Trylesinski
aaf201669c
Deprecate ServerState in the main module (#2581) 2025-02-21 06:55:37 -03:00
dependabot[bot]
3014765e73
Bump the python-packages group with 6 updates (#2569)
* Bump the python-packages group with 6 updates

Bumps the python-packages group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [websockets](https://github.com/python-websockets/websockets) | `13.1` | `14.2` |
| [a2wsgi](https://github.com/abersheeran/a2wsgi) | `1.10.7` | `1.10.8` |
| [twine](https://github.com/pypa/twine) | `6.0.1` | `6.1.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.8.4` | `0.9.4` |
| [trustme](https://github.com/python-trio/trustme) | `1.2.0` | `1.2.1` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.49` | `9.6.1` |


Updates `websockets` from 13.1 to 14.2
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/13.1...14.2)

Updates `a2wsgi` from 1.10.7 to 1.10.8
- [Commits](https://github.com/abersheeran/a2wsgi/compare/v1.10.7...v1.10.8)

Updates `twine` from 6.0.1 to 6.1.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/6.0.1...6.1.0)

Updates `ruff` from 0.8.4 to 0.9.4
- [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/0.8.4...0.9.4)

Updates `trustme` from 1.2.0 to 1.2.1
- [Release notes](https://github.com/python-trio/trustme/releases)
- [Commits](https://github.com/python-trio/trustme/compare/v1.2.0...v1.2.1)

Updates `mkdocs-material` from 9.5.49 to 9.6.1
- [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.49...9.6.1)

---
updated-dependencies:
- dependency-name: websockets
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: a2wsgi
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: twine
  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-minor
  dependency-group: python-packages
- dependency-name: trustme
  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-minor
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>

* lint the whole thing

---------

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>
2025-02-09 08:56:47 +00:00
Marcelo Trylesinski
4156ccb4c9
Drop Python 3.8 (#2543)
* Drop Python 3.8

* Run lint
2024-12-15 12:40:42 +01:00
dependabot[bot]
038f8ef3fe
Bump the python-packages group across 1 directory with 9 updates (#2538)
* Bump the python-packages group across 1 directory with 9 updates

Bumps the python-packages group with 9 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [websockets](https://github.com/python-websockets/websockets) | `13.1` | `14.1` |
| [twine](https://github.com/pypa/twine) | `5.1.1` | `6.0.1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.7.1` | `0.8.3` |
| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.3.4` |
| [trustme](https://github.com/python-trio/trustme) | `1.1.0` | `1.2.0` |
| [cryptography](https://github.com/pyca/cryptography) | `43.0.3` | `44.0.0` |
| [coverage](https://github.com/nedbat/coveragepy) | `7.6.4` | `7.6.9` |
| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |
| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.5.43` | `9.5.48` |



Updates `websockets` from 13.1 to 14.1
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/13.1...14.1)

Updates `twine` from 5.1.1 to 6.0.1
- [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/v5.1.1...6.0.1)

Updates `ruff` from 0.7.1 to 0.8.3
- [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/0.7.1...0.8.3)

Updates `pytest` from 8.3.3 to 8.3.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/8.3.3...8.3.4)

Updates `trustme` from 1.1.0 to 1.2.0
- [Release notes](https://github.com/python-trio/trustme/releases)
- [Commits](https://github.com/python-trio/trustme/compare/v1.1.0...v1.2.0)

Updates `cryptography` from 43.0.3 to 44.0.0
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/43.0.3...44.0.0)

Updates `coverage` from 7.6.4 to 7.6.9
- [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.6.4...7.6.9)

Updates `httpx` from 0.27.2 to 0.28.1
- [Release notes](https://github.com/encode/httpx/releases)
- [Changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/httpx/compare/0.27.2...0.28.1)

Updates `mkdocs-material` from 9.5.43 to 9.5.48
- [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.43...9.5.48)

---
updated-dependencies:
- dependency-name: websockets
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: twine
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: ruff
  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: trustme
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python-packages
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: python-packages
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python-packages
- dependency-name: httpx
  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-patch
  dependency-group: python-packages
...

Signed-off-by: dependabot[bot] <support@github.com>

* Add websockets old version to the requiremnts

* trustme

* fix issue with httpx

* continue with websockets old version

---------

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>
2024-12-14 12:08:17 +01:00