pre-commit-ci[bot]
b936d418e1
🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
9 months ago
Abhishek Biswas
e267cd41cb
Update test_forms_empty_string_default_13533.py
9 months ago
Abhishek Biswas
e07f5dea76
🐛 Fix form validation regression with empty string default values
Fixes #13533
This fixes regressions in form handling where empty strings in form
fields were incorrectly treated as values instead of using default
values for optional fields.
## Problem
When form fields with Optional types and None defaults received empty
strings (""), FastAPI incorrectly treated them as empty string values
instead of using the default value (None). This affected both:
- x-www-form-urlencoded forms
- multipart/form-data forms
This regression broke existing applications when upgrading from
v0.112.4 to v0.115.x.
## Solution
Modified the _extract_form_body function in fastapi/dependencies/utils.py:
1. Track defined body_field aliases to distinguish between declared
fields and extra fields
2. Don't add empty strings for Form fields since _get_multidict_value
already handles them correctly by returning default values
3. Only add extra fields from received_body that are not already
defined as body_fields to prevent overwriting correctly processed
default values
## Tests
- Added comprehensive regression tests in
tests/test_forms_empty_string_default_13533.py
- All existing form-related tests pass (verified 20+ tests)
- Python 3.8+ compatible (uses typing_extensions.Annotated)
9 months ago
Abhishek Biswas
e201c735aa
fix ISSUE 13533
9 months ago
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 <[email protected] >
9 months ago
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>
10 months ago
Sofie Van Landeghem
3611c3fc5b
⬆️ Add support for Python 3.14 ( #14165 )
10 months ago
François Voron
185cecd891
🐛 Fix tagged discriminated union not recognized as body field ( #12942 )
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Patrick Arminio <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
10 months ago
Colin Watson
c970d8a735
👽 ️ Ensure compatibility with Pydantic 2.12.0 ( #14036 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: Victorien <[email protected] >
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Patrick Arminio <[email protected] >
10 months ago
Sebastián Ramírez
e329d78f86
🐛 Fix support for `StreamingResponse`s with dependencies with `yield` or `UploadFile`s, close after the response is done ( #14099 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
10 months ago
Thomas LÉVEIL
44fc67632b
🐛 Fix validation error when `File` is declared after `Form` parameter ( #11194 )
Co-authored-by: Sebastián Ramírez <[email protected] >
10 months ago
vvanglro
f1e6f978ce
⚡ ️ Fix `default_factory` for response model field with Pydantic V1 ( #9704 )
Co-authored-by: Motov Yurii <[email protected] >
10 months ago
Robert Hofer
b51ec36f2e
✨ Allow `None` as return type for bodiless responses ( #9425 )
Co-authored-by: Sebastián Ramírez <[email protected] >
10 months ago
Max McLennan
86e515784d
🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1 ( #6039 )
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] >
10 months ago
Salim Aboubacar
2dc769b121
🐛 Fix `jsonable_encoder` alters `json_encoders` of Pydantic v1 objects ( #4972 )
Co-authored-by: Sebastián Ramírez <[email protected] >
Co-authored-by: Yurii Motov <[email protected] >
10 months ago
sammasak
8ede27223e
✨ Allow array values for OpenAPI schema `type` field ( #13639 )
Co-authored-by: Lukas Rajala <[email protected] >
Co-authored-by: dlax <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
10 months ago
rmawatson
9ac56c70f2
🐛 Reenable `allow_arbitrary_types` when only 1 argument is used on the API endpoint ( #13694 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: Motov Yurii <[email protected] >
10 months ago
Carlos Mario Toro
bc5013cd56
✨ Add OpenAPI `external_docs` parameter to `FastAPI` ( #13713 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <[email protected] >
10 months ago
Amogha Rao
5fef4d199b
✅ Enable test case for duplicated headers in `test_tutorial/test_header_params/test_tutorial003.py` ( #13864 )
Co-authored-by: amogha-rao <[email protected] >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
10 months ago
山崎ヒカル
11d424c3dc
✅ Simplify tests for response_model ( #14062 )
10 months ago
Ben Beasley
7563579dc8
⬆️ Upgrade Starlette supported version range to >=0.40.0,<0.49.0 ( #14077 )
Co-authored-by: svlandeg <[email protected] >
10 months ago
Sebastián Ramírez
f5b77ff0fc
📝 Add documentation for Behind a Proxy - Proxy Forwarded Headers, using `--forwarded-allow-ips="*"` ( #14028 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
11 months ago
z0z0r4
d4ddcc5878
📝 Update testing events documentation ( #13259 )
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: Sebastián Ramírez <[email protected] >
11 months ago
Chih-Hsuan Yen
54c7c34b25
⬆ Update httpx requirement to >=0.23.0,<0.29.0 ( #13114 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 year ago
Patrick Arminio
9d0d8828cc
🐛 Fix support for unions when using `Form` ( #13827 )
1 year ago
oogee
30b9dfb11c
🚸 Set format to password for fields `password` and `client_secret` in `OAuth2PasswordRequestForm`, make docs show password fields for passwords ( #11032 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 year ago
Valentyn
85a2eed888
✅ Simplify tests for `settings` ( #13505 )
Co-authored-by: Valentyn Druzhynin <[email protected] >
1 year ago
Valentyn
da4605b039
✅ Simplify tests for `validate_response_recursive` ( #13507 )
Co-authored-by: Valentyn Druzhynin <[email protected] >
1 year ago
Motov Yurii
535d5b3f9f
🐛 Fix truncating the model's description with form feed (`\f`) character for Pydantic V2 ( #13698 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 year ago
Joakim Nordling
8fa56b46a1
⬆️ Update ReDoc to version 2.x ( #9700 )
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
Co-authored-by: Sofie Van Landeghem <[email protected] >
1 year ago
Frank Hoffmann
ea42ebda80
✅ Use `inline-snapshot` to support different Pydantic versions in the test suite ( #12534 )
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Sofie Van Landeghem <[email protected] >
1 year ago
Sebastián Ramírez
2537d9d1c2
🐛 Fix `convert_underscores=False` for header Pydantic models ( #13515 )
1 year ago
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] <[email protected] >
* update pre-commit accordingly and make formatting changes
* 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
---------
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <[email protected] >
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 year ago
Sebastián Ramírez
74fe89bf35
🐛 Add docs examples and tests (support) for `Annotated` custom validations, like `AfterValidator`, revert #13440 ( #13442 )
This reverts commit 15dd2b67d3 .
1 year ago
Victorien
15dd2b67d3
♻️ Update internal annotation usage for compatibilty with Pydantic 2.11 ( #13314 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: svlandeg <[email protected] >
1 year ago
alv2017
7eabff43de
✅ Fix a minor bug in the test `tests/test_modules_same_name_body/test_main.py` ( #13411 )
1 year ago
Arthur Rio
ccc7c8fef9
🐛 Ensure that `HTTPDigest` only raises an exception when `auto_error is True` ( #2939 )
Co-authored-by: svlandeg <[email protected] >
1 year ago
Hyogeun Oh (오효근)
e157cf4b96
🐛 Fix issue with Swagger theme change example in the official tutorial ( #13289 )
1 year ago
alv2017
5451d05bc8
✅ Simplify tests for `query_params_str_validations` ( #13218 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <[email protected] >
1 year ago
alv2017
f6872dd298
✅ Simplify tests for `app_testing` ( #13220 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <[email protected] >
1 year ago
alv2017
1e6d95ce6d
✅ Simplify tests for `dependency_testing` ( #13223 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <[email protected] >
1 year ago
Rahul Pai
d5ecbaceae
🐛 Fix `OAuth2PasswordRequestForm` and `OAuth2PasswordRequestFormStrict` fixed `grant_type` "password" RegEx ( #9783 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alejandra <[email protected] >
Co-authored-by: Sofie Van Landeghem <[email protected] >
Co-authored-by: svlandeg <[email protected] >
Co-authored-by: Sebastián Ramírez <[email protected] >
1 year ago
Alejandra
c5b5af7c53
✅ Simplify tests for request_files ( #13182 )
Co-authored-by: Sebastián Ramírez <[email protected] >
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 year ago
Alejandra
280fe73c03
✅ Simplify tests for websockets ( #13202 )
2 years ago
Alejandra
182c28e57a
✅ Simplify tests for request_form_models ( #13183 )
Co-authored-by: Sofie Van Landeghem <[email protected] >
2 years ago
Alejandra
39698df806
✅ Simplify tests for separate_openapi_schemas ( #13201 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2 years ago
Alejandra
2007993433
✅ Simplify tests for security ( #13200 )
2 years ago
Alejandra
3e12918325
✅ Simplify tests for schema_extra_example ( #13197 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2 years ago
Alejandra
081901cc99
✅ Simplify tests for request_model ( #13195 )
2 years ago
Alejandra
d309c9e140
✅ Simplify tests for request_forms_and_files ( #13185 )
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2 years ago