lif
c007dff271
Merge b89a15d575 into 5ca11c59e3
2026-02-04 17:36:50 +00:00
Jonathan Fulton
75c47187f3
🐛 Update `ValidationError` schema to include `input` and `ctx` ( #14791 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-04 15:34:02 +01:00
Mickaël Guérin
09f5941f0e
🐛 Fix TYPE_CHECKING annotations for Python 3.14 (PEP 649) ( #14789 )
2026-02-04 14:49:44 +01:00
Cecilia Madrid
1d96b3e3f1
🐛 Strip whitespaces from `Authorization` header credentials ( #14786 )
2026-02-04 14:46:46 +01:00
johnson-earls
3ee652dd0c
📝 Fix example of license identifier in documentation ( #14492 )
...
Co-authored-by: svlandeg <svlandeg@github.com>
2026-02-04 14:29:02 +01:00
Anton
41352de24c
🚸 Improve error message for invalid query parameter type annotations ( #14479 )
...
Co-authored-by: Anton.D <anton.dehtiarenko@chdp-tech.net>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2026-02-04 14:24:59 +01:00
DJ Melisso
08dad5c69f
🐛 Fix OpenAPI duplication of `anyOf` refs for app-level responses with specified `content` and `model` as `Union` ( #14463 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2026-02-04 14:23:08 +01:00
Sebastián Ramírez
1b42639296
🔥 Remove test variants for Pydantic v1 in test_request_params ( #14612 )
2025-12-27 19:31:34 +01:00
Sebastián Ramírez
44c849c4fc
🔥 Remove Pydantic v1 specific test variants ( #14611 )
2025-12-27 19:19:10 +01:00
Sebastián Ramírez
e300630551
➖ Drop support for `pydantic.v1` ( #14609 )
2025-12-27 13:54:56 +01:00
Sebastián Ramírez
34e884156f
✅ Run performance tests only on Pydantic v2 ( #14608 )
2025-12-26 20:40:26 +00:00
Sebastián Ramírez
535b5daa31
🔊 Add a custom `FastAPIDeprecationWarning` ( #14605 )
2025-12-26 12:45:20 +00:00
Motov Yurii
3063ada72f
✅ Add missing tests for code examples ( #14569 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nils-Hero Lindemann <nilsherolindemann@proton.me>
2025-12-26 11:43:02 +01:00
lif
b89a15d575
fix: use params.Depends instead of Depends for isinstance check
...
The Depends function returns a params.Depends instance, so we need to
check isinstance against params.Depends, not the Depends function itself.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:46:11 +08:00
pre-commit-ci-lite[bot]
b8ab033080
🎨 Auto format
2025-12-25 15:41:17 +00:00
lif
f7e2c39524
test: add comprehensive tests for _try_resolve_annotated_string
...
Add unit tests for:
- Invalid annotation formats (missing prefix/suffix)
- Non-Depends metadata (Query, etc.)
- Eval failures for undefined functions
- Nested brackets in type annotations
- ForwardRef type resolution failures
- Exception handling with partial resolution fallback
- Resolved Annotated types
- get_typed_signature edge cases
These tests improve coverage for the forward reference handling code.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 23:40:35 +08:00
Sebastián Ramírez
6e42bcd8ce
🔊 Add deprecation warnings when using `pydantic.v1` ( #14583 )
2025-12-21 17:44:10 +01:00
lif
70bd7a592e
Exclude manual test runner from coverage
2025-12-21 17:48:45 +08:00
Sebastián Ramírez
e2cd8a4201
➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's `pydantic.v1` ( #14575 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-20 16:55:38 +01:00
lif
831fd18892
fix: resolve ruff lint errors (Dict -> dict, remove outdated version block)
2025-12-18 22:13:08 +08:00
lif
b175737867
Merge branch 'master' into fix/annotated-forward-ref-13056
2025-12-18 21:25:44 +08:00
Sebastián Ramírez
caee1d3123
👷 Add performance tests with CodSpeed ( #14558 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-18 14:24:09 +01:00
pre-commit-ci-lite[bot]
dc6c5b8917
🎨 Auto format
2025-12-18 13:22:49 +00:00
lif
c171f468d8
Fix CI failures: Python 3.8 compatibility and Pydantic v1 tests
...
- Fix Python 3.8 compatibility by importing Annotated from typing_extensions
when running on Python < 3.9
- Simplify get_typed_signature to not use get_type_hints which was causing
issues with Pydantic v1 parameter detection (Header, Cookie, Query, etc.)
- Instead, expand globalns with module namespace to help resolve forward
references while keeping the original annotation resolution logic intact
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 21:21:13 +08:00
Sebastián Ramírez
1c4fc96c91
♻️ Upgrade internal syntax to Python 3.9+ 🎉 ( #14564 )
2025-12-17 21:25:59 +00:00
Sebastián Ramírez
ed97d9dc0c
⚰️ Remove Python 3.8 from CI and remove Python 3.8 examples from source docs ( #14559 )
...
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2025-12-17 21:41:43 +01:00
pre-commit-ci-lite[bot]
a975a1704e
🎨 Auto format
2025-12-17 16:28:11 +00:00
lif
9e7ca4d454
Fix Annotated with ForwardRef when using future annotations
...
When using `from __future__ import annotations` with `Annotated[SomeClass, Depends()]`
where SomeClass is defined after the function, FastAPI was unable to properly
resolve the forward reference and treated the parameter as a query parameter
instead of a dependency.
This fix adds special handling to partially resolve Annotated string annotations,
extracting metadata (like Depends) even when the inner type cannot be fully resolved.
Fixes #13056
2025-12-18 00:27:08 +08:00
Motov Yurii
d86c47477e
🐛 Fix parameter aliases ( #14371 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-12 15:56:57 +01:00
Sebastián Ramírez
c0556ac3a5
🐛 Fix support for tagged union with discriminator inside of `Annotated` with `Body()` ( #14512 )
2025-12-12 15:31:21 +01:00
Motov Yurii
6c54bcefd3
✅ Add set of tests for request parameters and alias ( #14358 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-11 17:15:36 +01:00
Sebastián Ramírez
cd9d093f60
📝 Update docs about re-raising validation errors, do not include string as is to not leak information ( #14487 )
2025-12-10 12:56:50 +00:00
Sebastián Ramírez
7ba042e069
🐛 Fix support for `if TYPE_CHECKING`, non-evaluated stringified annotations ( #14485 )
2025-12-10 13:06:05 +01:00
Sebastián Ramírez
42b250d14d
🐛 Fix handling arbitrary types when using `arbitrary_types_allowed=True` ( #14482 )
2025-12-10 11:36:29 +01:00
Motov Yurii
9475024640
📝 Add variants for code examples in "Advanced User Guide" ( #14413 )
2025-12-10 09:55:32 +01:00
Sebastián Ramírez
8cedb742cb
✅ Add test for Pydantic v2, dataclasses, UUID, and `__annotations__` ( #14477 )
2025-12-09 12:12:24 +01:00
Savannah Ostrowski
e1117f7550
🚸 Improve tracebacks by adding endpoint metadata ( #14306 )
...
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-06 12:21:57 +00:00
Motov Yurii
da0ffab0b2
🐛 Fix using class (not instance) dependency that has `__call__` method ( #14458 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-05 21:21:05 +00:00
Motov Yurii
812a1926f0
🐛 Fix `separate_input_output_schemas=False` with `computed_field` ( #14453 )
2025-12-05 21:19:30 +01:00
Sebastián Ramírez
0b5fa563cd
🐛 Fix OAuth2 scopes in OpenAPI in extra corner cases, parent dependency with scopes, sub-dependency security scheme without scopes ( #14459 )
2025-12-04 23:22:01 +01:00
Sebastián Ramírez
0ec4bafca2
🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes ( #14455 )
2025-12-04 13:59:24 +01:00
chaen
861598b4e3
🐛 Fix evaluating stringified annotations in Python 3.10 ( #11355 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
Co-authored-by: svlandeg <svlandeg@github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-04 09:18:32 +01:00
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
Victorien
80d69ae0bb
🐛 Fix optional sequence handling with new union syntax from Python 3.10 ( #14430 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-02 16:59:38 +00: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
Vincent Grafé
f95a174288
🐛 Fix OpenAPI schema support for computed fields when using `separate_input_output_schemas=False` ( #13207 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
Co-authored-by: svlandeg <svlandeg@github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: svlandeg <sofie.vanlandeghem@gmail.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-02 09:22:08 +00: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
0f613d9051
🐛 Fix optional sequence handling in `serialize sequence value` with Pydantic V2 ( #14297 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-02 08:10:27 +01:00