Sebastián Ramírez
bba4d4c95e
🐛 Fix support for functools wraps and partial combined, for async and regular functions and classes in path operations and dependencies ( #14448 )
...
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com >
2025-12-04 08:29:28 +01:00
Lie Ryan
9824486616
✨ Allow using dependables with functools.partial() ( #9753 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com >
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com >
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 20:58:30 +00:00
[object Object]
1c1e584abd
✨ Add support for wrapped functions (e.g. @functools.wraps()) used with forward references ( #5077 )
...
Co-authored-by: Yurii Karabas <1998uriyyo@gmail.com >
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 18:23:14 +01:00
Matthew Martin
73c411e1b9
✨ Handle wrapped dependencies ( #9555 )
...
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com >
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com >
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 14:34:19 +01:00
Motov Yurii
015b4fae9c
🐛 Fix Query\Header\Cookie parameter model alias ( #14360 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 07:24:09 +00:00
Motov Yurii
de5bec637c
🐛 Fix parsing extra non-body parameter list ( #14356 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 05:57:19 +01:00
Motov Yurii
6cf40df24d
🐛 Fix parsing extra Form parameter list ( #14303 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 05:49:32 +01:00
ad hoc
d68c066246
🐛 Fix support for form values with empty strings interpreted as missing (None if that's the default), for compatibility with HTML forms ( #13537 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com >
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com >
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-12-02 05:39:55 +01:00
Sebastián Ramírez
7fbd30460f
🐛 Cache dependencies that don't use scopes and don't have sub-dependencies with scopes ( #14419 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-30 15:45:49 +01:00
Kristján Valur Jónsson
378ad688b7
🐛 Fix hierarchical security scope propagation ( #5624 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com >
Co-authored-by: svlandeg <svlandeg@github.com >
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com >
2025-11-30 12:57:01 +01:00
Sebastián Ramírez
85701631a0
♻️ Make the result of Depends() and Security() hashable, as a workaround for other tools interacting with these internal parts ( #14372 )
2025-11-19 17:50:18 +01:00
luzzodev
282f372eda
🐛 Fix Depends(func, scope='function') for top level (parameterless) dependencies ( #14301 )
2025-11-08 22:43:30 +01:00
Sebastián Ramírez
ac438b9934
✨ Add support for dependencies with scopes, support scope="request" for dependencies with yield that exit before the response is sent ( #14262 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-03 11:12:49 +01:00
Motov Yurii
496de1816a
🐛 Fix security schemes in OpenAPI when added at the top level app ( #14266 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-10-31 19:34:30 +01:00
Sebastián Ramírez
dcfb8b9dda
♻️ Reduce internal cyclic recursion in dependencies, from 2 functions calling each other to 1 calling itself ( #14256 )
2025-10-30 20:35:04 +01:00
Sebastián Ramírez
bb88a0f94a
♻️ Refactor internals of dependencies, simplify code and remove get_param_sub_dependant ( #14255 )
2025-10-30 05:58:49 +01:00
Sebastián Ramírez
c144f9fbd3
♻️ Refactor internals of dependencies, simplify using dataclasses ( #14254 )
2025-10-30 05:51:50 +01:00
Sofie Van Landeghem
d8c691f7f0
🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1 ( #14186 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-10-20 13:26:49 +02:00
Sebastián Ramírez
d34918abf0
✨ Add support for from pydantic.v1 import BaseModel, mixed Pydantic v1 and v2 models in the same app ( #14168 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-11 18:45:54 +02:00
Thomas LÉVEIL
44fc67632b
🐛 Fix validation error when File is declared after Form parameter ( #11194 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-09-20 21:55:59 +02:00
Robert Hofer
b51ec36f2e
✨ Allow None as return type for bodiless responses ( #9425 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2025-09-20 18:44:43 +00:00
Evgeny Bokshitsky
c2c6049b8f
♻️ Create dependency-cache dict in solve_dependencies only if None (don't re-create if empty) ( #13689 )
2025-09-20 19:37:18 +02:00
rmawatson
9ac56c70f2
🐛 Reenable allow_arbitrary_types when only 1 argument is used on the API endpoint ( #13694 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com >
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com >
2025-09-20 19:25:53 +02:00
secrett2633
c831cdbde2
🐛 Fix inspect.getcoroutinefunction() can break testing with unittest.mock.patch() ( #14022 )
2025-09-20 18:30:34 +02:00
Patrick Arminio
9d0d8828cc
🐛 Fix support for unions when using Form ( #13827 )
2025-06-26 17:22:53 +02:00
Sebastián Ramírez
2537d9d1c2
🐛 Fix convert_underscores=False for header Pydantic models ( #13515 )
2025-03-23 21:48:54 +01:00
dependabot[bot]
8c94e97c89
⬆ Bump ruff to 0.9.4 ( #13299 )
...
* ⬆ Bump ruff from 0.6.4 to 0.9.4
Bumps [ruff](https://github.com/astral-sh/ruff ) from 0.6.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.6.4...0.9.4 )
---
updated-dependencies:
- dependency-name: ruff
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* update pre-commit accordingly and make formatting changes
* 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <90076947+alejsdev@users.noreply.github.com >
Co-authored-by: svlandeg <sofie.vanlandeghem@gmail.com >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-03-06 13:18:57 +01:00
Sebastián Ramírez
74fe89bf35
🐛 Add docs examples and tests (support) for Annotated custom validations, like AfterValidator, revert #13440 ( #13442 )
...
This reverts commit 15dd2b67d3 .
2025-03-01 22:02:35 +00:00
Victorien
15dd2b67d3
♻️ Update internal annotation usage for compatibilty with Pydantic 2.11 ( #13314 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com >
Co-authored-by: svlandeg <svlandeg@github.com >
2025-02-28 16:15:02 +01:00
Sebastián Ramírez
b31cbbf5f5
♻️ Update logic to import and check python-multipart for compatibility with newer version ( #12627 )
2024-10-27 21:46:26 +00:00
José Pacheco
8ae4603d68
🐛 Remove Required shadowing from fastapi using Pydantic v2 ( #12197 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com >
2024-10-12 11:36:32 +02:00
Sebastián Ramírez
40490abaa3
♻️ Update type annotations for improved python-multipart ( #12407 )
2024-10-08 12:55:26 +02:00
Sebastián Ramírez
55035f440b
✨ Add support for Pydantic models for parameters using Query, Cookie, Header ( #12199 )
2024-09-17 20:54:10 +02:00
Nico Tonnhofer
88d4f2cb18
🐛 Fix form field regression ( #12194 )
2024-09-13 11:51:00 +02:00
Sebastián Ramírez
b0eedbb580
⚡ ️ Improve performance in request body parsing with a cache for internal model fields ( #12184 )
2024-09-11 09:45:30 +02:00
Sebastián Ramírez
4633b1bca9
✨ Add support for forbidding extra form fields with Pydantic models ( #12134 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com >
2024-09-06 19:31:18 +02:00
Sebastián Ramírez
7bad7c0975
✨ Add support for Pydantic models in Form parameters ( #12129 )
...
Revert "⏪ ️ Temporarily revert "✨ Add support for Pydantic models in `Form` pa…"
This reverts commit 8e6cf9ee9c .
2024-09-05 17:16:50 +02:00
Sebastián Ramírez
8e6cf9ee9c
⏪ ️ Temporarily revert " ✨ Add support for Pydantic models in Form parameters" to make a checkpoint release ( #12128 )
...
Revert "✨ Add support for Pydantic models in `Form` parameters (#12127 )"
This reverts commit 0f3e65b007 .
2024-09-05 16:55:44 +02:00
Sebastián Ramírez
0f3e65b007
✨ Add support for Pydantic models in Form parameters ( #12127 )
2024-09-05 16:40:48 +02:00
Sebastián Ramírez
aa21814a89
♻️ Refactor deciding if embed body fields, do not overwrite fields, compute once per router, refactor internals in preparation for Pydantic models in Form, Query and others ( #12117 )
2024-09-05 13:24:36 +02:00
Sebastián Ramírez
23bda0ffeb
♻️ Refactor internal check_file_field(), rename to ensure_multipart_is_installed() to clarify its purpose ( #12106 )
2024-09-01 21:39:25 +02:00
Sebastián Ramírez
d08b95ea57
♻️ Rename internal create_response_field() to create_model_field() as it's used for more than response models ( #12103 )
2024-09-01 01:46:03 +02:00
Sebastián Ramírez
5b7fa3900e
♻️ Refactor and simplify internal data from solve_dependencies() using dataclasses ( #12100 )
2024-08-31 22:52:06 +02:00
Sebastián Ramírez
08547e1d57
♻️ Refactor and simplify internal analyze_param() to structure data with dataclasses instead of tuple ( #12099 )
2024-08-31 22:27:44 +02:00
Sebastián Ramírez
581aacc4a9
♻️ Refactor and simplify dependencies data structures with dataclasses ( #12098 )
2024-08-31 22:19:30 +02:00
Sebastián Ramírez
3a3ad5d66d
⬆️ Upgrade version of Ruff and reformat ( #12032 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-08-16 23:13:50 -05:00
Nadav Zingerman
eec612ca8d
🐛 Fix parameterless Depends() with generics ( #9479 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com >
2024-04-01 21:52:56 -05:00
Charlie Marsh
5ccc869fee
⬆️ Upgrade configuration for Ruff v0.2.0 ( #11075 )
2024-03-26 11:56:53 -05:00
Sebastián Ramírez
a4aa79e0b4
✨ Add support for raising exceptions (including HTTPException) in dependencies with yield in the exit code, do not support them in background tasks ( #10831 )
...
* ♻️ Refactor dependency AsyncExitStack logic, exit dependencies after creating the response, before sending it
* ✅ Update tests for dependencies exit, check they are finished before the response is sent
* 🔥 Remove ExitAsyncStackMiddleware as it's no longer needed
* 📝 Update docs for dependencies with yield
* 📝 Update release notes
* 📝 Add source examples for new dependencies with yield raising
* ✅ Add tests for new dependencies raising after yield
* 📝 Update release notes
2023-12-25 18:57:35 +01:00
Sebastián Ramírez
6f5aa81c07
✨ Add support for multiple Annotated annotations, e.g. Annotated[str, Field(), Query()] ( #10773 )
2023-12-12 00:22:47 +00:00