506 Commits
Author SHA1 Message Date
e92a0dc3ce 🐛 Fix status_code being ignored for SSE and JSONL streaming endpoints (#15937)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2026-07-28 17:25:12 +02:00
0f3e7bd682 🐛 Fix line splitting in format_sse_event to comply with SSE spec (#15515)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-07-28 16:54:54 +02:00
Yurii MotovandSebastián Ramírez d6537f774b 🐛 Fix response_model_* params ignored for non-generator endpoints with Iterable[..] return type (#15093)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-07-28 16:22:05 +02:00
Yurii MotovandSebastián Ramírez 65e42bd5ec 🐛 Fix handling sequences with nested Annotated types (#14874)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-07-28 16:04:16 +02:00
Muhammad Bin GulzarandSebastián Ramírez aadfcce763 🐛 Fix exclude_defaults not propagated to dict keys and values in jsonable_encoder (#16043)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-07-28 12:28:18 +00:00
ad03e117c0 🐛 Fix stream item type lost when using include_router() (#15077)
Co-authored-by: Alexander Rauhut <alexander.rauhut@adnova.gmbh>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-07-28 12:22:08 +02:00
Sebastián Ramírez 7bcb78d10d ️ Avoid flattening dependencies for OpenAPI (#16076) 2026-07-27 17:16:40 +00:00
Sebastián Ramírez 3d3c6913e8 👷 Add OpenAPI dependency benchmarks (#16075) 2026-07-27 18:46:54 +02:00
Sebastián Ramírez 2f34b90742 👷 Add new memory benchmark (#16064) 2026-07-27 12:39:36 +00:00
Sebastián Ramírez 65ef53ae6a ♻️ Update the lru_cache limit for dependencies to account for large apps (#16062) 2026-07-27 11:18:26 +00:00
Sebastián Ramírez 0270829500 ️ Reduce memory usage in dependencies (#16049) 2026-07-24 21:07:51 +00:00
Sebastián Ramírez 513c396322 👷 Add CI memory benchmark (#16046) 2026-07-24 20:21:58 +00:00
Sebastián Ramírez 7fe315c21a 🐛 Refactor router route building to make it thread-safe, mainly relevant for tests running in parallel threads (uncommon) (#16013) 2026-07-16 16:57:38 +02:00
Sebastián Ramírez eb75fd078e 🐛 Fix frontend fallback support for doted paths like /users/john.doe (#16011) 2026-07-16 10:59:23 +02:00
Sebastián Ramírez 319be508ce Support dependencies in app.frontend(), e.g. for automatic cookie authentication for the frontend (#15908) 2026-07-01 18:12:33 +02:00
Sebastián Ramírez b790e14cb6 ♻️ Make app.frontend() return 404 for methods other than GET or HEAD with no static file matches (#15863) 2026-06-29 13:57:59 +02:00
Sebastián Ramírez 4d3dc78b26 Add support for app.frontend("/", directory="dist") and router.frontend("/", directory="dist") (#15800) 2026-06-20 00:20:49 +00:00
Sebastián Ramírez 6ac122071d Add iter_route_contexts() for advanced use cases that used to use router.routes (e.g. Jupyverse) (#15785) 2026-06-18 08:49:38 +02:00
Sebastián Ramírez b7de2b7feb 🔧 Add ty configs to check docs sources (#15770) 2026-06-15 17:53:46 +02:00
Sebastián Ramírez d8aad201eb 🐛 Fix bug, allow empty path in path operation in prefixless router (#15763) 2026-06-15 12:55:06 +02:00
Sebastián Ramírez 8e1d774cef ♻️ Refactor internals to preserve APIRouter and APIRoute instances (#15745) 2026-06-14 14:35:48 +02:00
Sebastián Ramírez b4d58fddee 👷 Automate release preparation (#15661) 2026-05-31 16:00:38 +00:00
Yurii Motov 59d4a80fcf Add httpx2 test dependency to avoid deprecation warning (#15603) 2026-05-27 12:47:28 +02:00
Sebastián Ramírez 063b5bf582 ♻️ Do not accept underscore headers when using convert_underscores=True (the default) (#15589) 2026-05-23 18:35:05 +00:00
Sebastián Ramírez c7fb7851b3 ♻️ Validate Server Sent Event fields to avoid applications from sending broken data (#15588) 2026-05-23 17:23:05 +00:00
Sebastián Ramírez 00f805cec9 Update tests, don't double dispose the engine (#15587) 2026-05-23 17:02:16 +00:00
Roman PostnovandSebastián Ramírez 8b647e3405 ️ Speed up test suite via caching and fixture scopes to make it ~24% faster (#13583)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-05-23 17:32:48 +02:00
Sebastián Ramírez fb7429378d 👷 Add pre-commit to check typos (#15482) 2026-05-05 09:44:36 +00:00
Sofie Van Landeghemandpre-commit-ci-lite[bot] 7815a32f2e ⬆️ Update Pydantic v2 code to address deprecations (#15101)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-23 18:40:29 +02:00
Sofie Van Landeghem 4b264878d7 ⬆️ Support free-threaded Python 3.14t (#15149) 2026-04-16 13:42:00 +02:00
Sebastián Ramírez ae4e45c5cc 🔥 Remove April Fool's @app.vibe() 🤪 (#15363) 2026-04-16 11:35:06 +00:00
Sebastián Ramírez 70580da818 Add support for @app.vibe() (#15280) 2026-04-01 18:16:24 +02:00
Sofie Van LandeghemandMotov Yurii aeb9f4bb85 ⬆️ Increase lower bound to pydantic >=2.9.0. and fix the test suite (#15139)
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2026-03-23 13:36:49 +01:00
31bbb38074 📝 Fix duplicated words in docstrings (#15116)
Fix "to to" and "that that" word duplications in security module docstrings,
and "be be" in test data string.

Co-authored-by: ahsan.sheraz <ahsan.sheraz@bonial.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 11:16:48 +01:00
Sebastián Ramírez 2238155844 Add support for Server Sent Events (#15030) 2026-03-01 10:21:52 +01:00
Sebastián Ramírez 1377052c6c 📝 Update docs for responses and new stream with yield (#15023) 2026-02-27 21:51:40 +01:00
Sebastián Ramírez 749cefdeb1 Add support for streaming JSON Lines and binary data with yield (#15022) 2026-02-27 19:56:47 +01:00
Motov Yurii 0901b4092c 📝 Rename docs_src/websockets to docs_src/websockets_ to avoid import errors (#14979) 2026-02-27 13:34:37 +01:00
Motov Yurii 5aacc7b6a0 🔨 Run tests with pytest-xdist and pytest-cov (#14992) 2026-02-27 11:53:47 +01:00
Sebastián Ramírez 2686c7fbbf ♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data (#14986) 2026-02-24 09:28:10 +00:00
Sebastián Ramírez 22354a2530 🔒️ Add strict_content_type checking for JSON requests (#14978) 2026-02-23 18:45:20 +01:00
Sebastián Ramírez 48e9835732 🗑️ Deprecate ORJSONResponse and UJSONResponse (#14964) 2026-02-22 17:34:59 +01:00
Sebastián Ramírez 590a5e5355 Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model (#14962) 2026-02-22 17:07:19 +01:00
Sebastián Ramírez e8b98d2187 🐛 Fix JSON Schema for files, use contentMediaType instead of format: binary (#14953) 2026-02-21 14:01:31 +01:00
faee822574 🎨 Upgrade typing syntax for Python 3.10 (#14932)
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tiangolo <1326112+tiangolo@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-17 09:59:14 +00:00
Sebastián Ramírez bbb96d4a0a 🔥 Remove Python 3.9 specific files, no longer needed after updating translations (#14931) 2026-02-17 08:08:04 +00:00
Sebastián Ramírez c9e2277d8b 📝 Update source examples and docs from Python 3.9 to 3.10 (#14900) 2026-02-12 14:19:43 +01:00
Sebastián Ramírezandgithub-actions[bot] ad4e8e0060 Drop support for Python 3.9 (#14897)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-11 19:32:12 +01:00
Sebastián Ramírez 6ce5e3e961 Tweak comment in test to reference PR (#14885) 2026-02-10 12:14:38 +00:00
38f965985e Test order for the submitted byte Files (#14828)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-10 11:46:48 +00:00