Adarsh Bennur
ca8b59f52d
Fix coverage by adding Query/Header tests to test_forms_fields_set.py
Ensures that _get_multidict_value is fully covered (both FormData and non-FormData paths) to satisfy CI requirements.
4 months ago
Adarsh Bennur
39b4ae0698
Fix: Make fields_set tests compatible with Pydantic v1 and v2
Rewrote test_forms_fields_set.py to work on both Pydantic versions:
- Use PYDANTIC_V2 flag from fastapi._compat
- Use model_fields_set (v2) or __fields_set__ (v1) appropriately
- Removed field_validator which is v2-only
- All tests now run on both versions for full coverage
6 months ago
Adarsh Bennur
3c62970852
Fix: Make test compatible with Pydantic v1 and v2
Add version check to skip test_forms_fields_set.py when Pydantic v1
is installed, since field_validator is a v2-only API.
6 months ago
Adarsh Bennur
b82e39d665
Fix: Preserve model_fields_set for Form models (issue #13399 )
When using Form() with Pydantic models, FastAPI was preloading default
values and passing them to Pydantic, causing all fields to appear in
model_fields_set even when not provided. This also caused validation
to be enforced on unprovided defaults.
Changes:
- Modified _get_multidict_value() to check if values is FormData
- For FormData, return None for unprovided fields instead of defaults
- This lets Pydantic handle defaults properly and preserve fields_set
- Updated test expectation in test_forms_single_model.py
- Added comprehensive test suite in test_forms_fields_set.py
The fix ensures Form models behave consistently with JSON body models
regarding field tracking and validation.
Closes #13399
6 months ago
Sebastián Ramírez
f9f7992604
♻️ Re-implement `on_event` in FastAPI for compatibility with the next Starlette, while keeping backwards compatibility ( #14851 )
4 months ago
Kanetsuna Masaya
c5fd75a321
🐛 Fix using `Json[list[str]]` type (issue #10997 ) ( #14616 )
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
4 months ago
Albin Skott
97145588f5
✨ Add support for PEP695 `TypeAliasType` ( #13920 )
Co-authored-by: lokidev <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
4 months ago
Jonathan Fulton
b49435becd
✨ Allow `Response` type hint as dependency annotation ( #14794 )
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
4 months ago
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>
4 months ago
Mickaël Guérin
09f5941f0e
🐛 Fix TYPE_CHECKING annotations for Python 3.14 (PEP 649) ( #14789 )
4 months ago
Cecilia Madrid
1d96b3e3f1
🐛 Strip whitespaces from `Authorization` header credentials ( #14786 )
4 months ago
johnson-earls
3ee652dd0c
📝 Fix example of license identifier in documentation ( #14492 )
Co-authored-by: svlandeg <[email protected] >
4 months ago
Anton
41352de24c
🚸 Improve error message for invalid query parameter type annotations ( #14479 )
Co-authored-by: Anton.D <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
4 months ago
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 <[email protected] >
4 months ago
Sebastián Ramírez
1b42639296
🔥 Remove test variants for Pydantic v1 in test_request_params ( #14612 )
5 months ago
Sebastián Ramírez
44c849c4fc
🔥 Remove Pydantic v1 specific test variants ( #14611 )
5 months ago
Sebastián Ramírez
e300630551
➖ Drop support for `pydantic.v1` ( #14609 )
5 months ago
Sebastián Ramírez
34e884156f
✅ Run performance tests only on Pydantic v2 ( #14608 )
6 months ago
Sebastián Ramírez
535b5daa31
🔊 Add a custom `FastAPIDeprecationWarning` ( #14605 )
6 months ago
Motov Yurii
3063ada72f
✅ Add missing tests for code examples ( #14569 )
Co-authored-by: Sebastián Ramírez <[email protected] >
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nils-Hero Lindemann <[email protected] >
6 months ago
Sebastián Ramírez
6e42bcd8ce
🔊 Add deprecation warnings when using `pydantic.v1` ( #14583 )
6 months ago
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>
6 months ago
Sebastián Ramírez
caee1d3123
👷 Add performance tests with CodSpeed ( #14558 )
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
6 months ago
Sebastián Ramírez
1c4fc96c91
♻️ Upgrade internal syntax to Python 3.9+ 🎉 ( #14564 )
6 months ago
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 <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
6 months ago
Motov Yurii
d86c47477e
🐛 Fix parameter aliases ( #14371 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Sebastián Ramírez
c0556ac3a5
🐛 Fix support for tagged union with discriminator inside of `Annotated` with `Body()` ( #14512 )
6 months ago
Motov Yurii
6c54bcefd3
✅ Add set of tests for request parameters and alias ( #14358 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Sebastián Ramírez
cd9d093f60
📝 Update docs about re-raising validation errors, do not include string as is to not leak information ( #14487 )
6 months ago
Sebastián Ramírez
7ba042e069
🐛 Fix support for `if TYPE_CHECKING`, non-evaluated stringified annotations ( #14485 )
6 months ago
Sebastián Ramírez
42b250d14d
🐛 Fix handling arbitrary types when using `arbitrary_types_allowed=True` ( #14482 )
6 months ago
Motov Yurii
9475024640
📝 Add variants for code examples in "Advanced User Guide" ( #14413 )
6 months ago
Sebastián Ramírez
8cedb742cb
✅ Add test for Pydantic v2, dataclasses, UUID, and `__annotations__` ( #14477 )
6 months ago
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 <[email protected] >
6 months ago
Motov Yurii
da0ffab0b2
🐛 Fix using class (not instance) dependency that has `__call__` method ( #14458 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Motov Yurii
812a1926f0
🐛 Fix `separate_input_output_schemas=False` with `computed_field` ( #14453 )
6 months ago
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 )
6 months ago
Sebastián Ramírez
0ec4bafca2
🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes ( #14455 )
6 months ago
chaen
861598b4e3
🐛 Fix evaluating stringified annotations in Python 3.10 ( #11355 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
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 <[email protected] >
6 months ago
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 <[email protected] >
Co-authored-by: Yurii Motov <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
[object Object]
1c1e584abd
✨ Add support for wrapped functions (e.g. `@functools.wraps()`) used with forward references ( #5077 )
Co-authored-by: Yurii Karabas <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
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 <[email protected] >
6 months ago
Matthew Martin
73c411e1b9
✨ Handle wrapped dependencies ( #9555 )
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Yurii Motov <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Vincent Grafé
f95a174288
🐛 Fix OpenAPI schema support for computed fields when using `separate_input_output_schemas=False` ( #13207 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Motov Yurii
015b4fae9c
🐛 Fix Query\Header\Cookie parameter model alias ( #14360 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
Motov Yurii
0f613d9051
🐛 Fix optional sequence handling in `serialize sequence value` with Pydantic V2 ( #14297 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
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 <[email protected] >
6 months ago
Motov Yurii
6cf40df24d
🐛 Fix parsing extra `Form` parameter list ( #14303 )
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago
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 <[email protected] >
Co-authored-by: Yurii Motov <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
6 months ago