Commit Graph

431 Commits

Author SHA1 Message Date
Salim Aboubacar 2dc769b121
🐛 Fix `jsonable_encoder` alters `json_encoders` of Pydantic v1 objects (#4972)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2025-09-20 19:57:18 +02:00
sammasak 8ede27223e
Allow array values for OpenAPI schema `type` field (#13639)
Co-authored-by: Lukas Rajala <lukas.rajala@klarna.com>
Co-authored-by: dlax <denis@laxalde.org>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-09-20 17:47:24 +00: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
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 <109919500+YuriiMotov@users.noreply.github.com>
2025-09-20 19:11:46 +02:00
Amogha Rao 5fef4d199b
Enable test case for duplicated headers in `test_tutorial/test_header_params/test_tutorial003.py` (#13864)
Co-authored-by: amogha-rao <amogha.rao@cloudera.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-20 18:57:53 +02:00
山崎ヒカル 11d424c3dc
Simplify tests for response_model (#14062) 2025-09-20 18:26:21 +02:00
Ben Beasley 7563579dc8
⬆️ Upgrade Starlette supported version range to >=0.40.0,<0.49.0 (#14077)
Co-authored-by: svlandeg <svlandeg@github.com>
2025-09-16 19:21:48 +02:00
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>
2025-08-31 21:34:08 +02:00
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 <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-08-31 10:29:21 +00:00
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>
2025-07-26 12:49:23 +02:00
Patrick Arminio 9d0d8828cc
🐛 Fix support for unions when using `Form` (#13827) 2025-06-26 17:22:53 +02:00
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>
2025-06-17 12:41:59 +02:00
Valentyn 85a2eed888
Simplify tests for `settings` (#13505)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
2025-06-17 12:25:20 +02:00
Valentyn da4605b039
Simplify tests for `validate_response_recursive` (#13507)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
2025-06-17 12:24:10 +02:00
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>
2025-06-17 09:46:27 +02:00
Joakim Nordling 8fa56b46a1
⬆️ Update ReDoc to version 2.x (#9700)
Co-authored-by: svlandeg <svlandeg@github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2025-04-28 20:31:44 +02:00
Frank Hoffmann ea42ebda80
Use `inline-snapshot` to support different Pydantic versions in the test suite (#12534)
Co-authored-by: svlandeg <svlandeg@github.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2025-04-28 09:13:56 +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
alv2017 7eabff43de
Fix a minor bug in the test `tests/test_modules_same_name_body/test_main.py` (#13411) 2025-02-27 15:42:41 +01:00
Arthur Rio ccc7c8fef9
🐛 Ensure that `HTTPDigest` only raises an exception when `auto_error is True` (#2939)
Co-authored-by: svlandeg <sofie.vanlandeghem@gmail.com>
2025-02-27 13:29:20 +01:00
Hyogeun Oh (오효근) e157cf4b96
🐛 Fix issue with Swagger theme change example in the official tutorial (#13289) 2025-02-18 17:52:15 +01:00
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 <90076947+alejsdev@users.noreply.github.com>
2025-02-15 17:31:57 +01:00
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 <90076947+alejsdev@users.noreply.github.com>
2025-02-15 15:42:41 +01:00
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 <90076947+alejsdev@users.noreply.github.com>
2025-02-15 14:37:48 +00:00
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 <90076947+alejsdev@users.noreply.github.com>
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-01-30 12:17:09 +00:00
Alejandra c5b5af7c53
Simplify tests for request_files (#13182)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-30 12:04:34 +00:00
Alejandra 280fe73c03
Simplify tests for websockets (#13202) 2025-01-19 22:40:39 +00:00
Alejandra 182c28e57a
Simplify tests for request_form_models (#13183)
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2025-01-19 22:39:18 +00:00
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>
2025-01-19 22:36:49 +00:00
Alejandra 2007993433
Simplify tests for security (#13200) 2025-01-19 22:35:40 +00:00
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>
2025-01-19 22:30:50 +00:00
Alejandra 081901cc99
Simplify tests for request_model (#13195) 2025-01-19 06:57:50 +00:00
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>
2025-01-19 06:43:21 +00:00
Alejandra c7d888a15f
Simplify tests for request_forms (#13184) 2025-01-19 06:42:25 +00:00
Alejandra 09ccfce228
Simplify tests for path_query_params (#13181) 2025-01-19 06:34:48 +00:00
Alejandra 2e8db846b4
Simplify tests for path_operation_configurations (#13180)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-01-19 06:33:10 +00:00
Alejandra aa60185781
Simplify tests for header_params (#13179) 2025-01-19 06:32:11 +00:00
Alejandra 3d017824ba
Simplify tests for extra_models (#13178) 2025-01-19 06:29:33 +00:00
Alejandra 8015f832d4
Simplify tests for extra_data_types (#13177) 2025-01-19 06:28:09 +00:00
Alejandra 736712173a
Simplify tests for cookie_params (#13176) 2025-01-19 06:26:50 +00:00
Alejandra 920df4d1ac
Simplify tests for dependencies (#13174) 2025-01-19 06:25:51 +00:00
Alejandra 0a882e926e
Simplify tests for body_updates (#13172) 2025-01-19 06:21:30 +00:00
Alejandra 55ef9270b8
Simplify tests for body_nested_models (#13171) 2025-01-19 06:20:41 +00:00
Alejandra 1cedd8becf
Simplify tests for body_multiple_params (#13170) 2025-01-19 06:19:58 +00:00
Alejandra 9b88c7c18a
Simplify tests for body_fields (#13169) 2025-01-08 20:28:44 +01:00
Alejandra 0cc031f477
Simplify tests for body (#13168) 2025-01-08 20:26:16 +01:00
Alejandra 5d3f45c2d4
Simplify tests for bigger_applications (#13167) 2025-01-08 20:25:01 +01:00
Alejandra 44adb29ce1
Simplify tests for background_tasks (#13166) 2025-01-08 20:23:42 +01:00
Sebastián Ramírez 994340f839
Simplify tests for additional_status_codes (#13149) 2025-01-03 09:47:55 +00:00
Sebastián Ramírez 4881d1e225
📝 Update docs for `fastapi-cli` (#13031)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-12-04 15:38:39 +01:00
Abdullah Hashim 4f8157588e
🐛 Preserve traceback when exception is raised in sync dependency with `yield` (#5823)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2024-12-03 23:37:12 +01:00
Tamir Duberstein bf4fad1fda
♻️ Update tests and internals for compatibility with Pydantic >=2.10 (#12971)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-11-22 18:09:25 +01:00
Sebastián Ramírez 5c080d81ae
📝 Update includes for `docs/en/docs/tutorial/schema-extra-example.md` (#12822) 2024-11-09 16:00:17 +00: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
Felix Fanghaenel e049fc4ea1
🐛 Fix openapi generation with responses kwarg (#10895)
Co-authored-by: flxdot <felix.fanghaenel@nitrex.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
Co-authored-by: Sławek Ehlert <slawomir.ehlert@gmail.com>
2024-10-12 11:44:57 +02:00
Sebastián Ramírez 7daaac2bc3
Add new tutorial for SQL databases with SQLModel (#12285) 2024-10-09 21:44:42 +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 c411b81c29
Update internal tests for latest Pydantic, including CI tweaks to install the latest Pydantic (#12147) 2024-09-06 15:57:43 +00: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
Giunio 51b625e127
🐛 Fix `allow_inf_nan` option for Param and Body classes (#11867)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: svlandeg <svlandeg@github.com>
2024-08-24 14:27:37 -05:00
Pastukhov Nikita 3a4ac24675
🐛 Ensure that `app.include_router` merges nested lifespans (#9630)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2024-08-24 14:09:52 -05: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
Sebastián Ramírez a25c92ceb9
♻️ Add support for `pip install "fastapi[standard]"` with standard dependencies and `python -m fastapi` (#11935)
* ♻️ Add support for `pip install "fastapi[standard]"` and make `fastapi` not include the optional standard dependencies

* 📝 Update docs to include new fastapi[standard]

*  Add new stub fastapi command that tells people to install fastapi[standard]

*  Add tests for new stub CLI

* 🔧 Add new command fastapi in main fastapi project, for when fastapi-cli is not installed

* ✏️ Fix types

* 📝 Add note about quotes when installing fastapi[standard]

* 📝 Update docs about standard extra dependencies

* ⬆️ Upgrade fastapi-cli
2024-08-02 01:03:05 -05:00
jianghuyiyuan 2e35b176cf
✏️ Fix typos in docs (#11926) 2024-07-31 09:09:15 -05:00
Nir Schulman a69f38340f
📝 Restored Swagger-UI links to use the latest version possible. (#11459) 2024-05-23 17:59:02 -05:00
Nils Lindemann 6d523d62d0
📝 Fix types in examples under `docs_src/extra_data_types` (#10535)
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>
2024-04-18 19:11:40 -05:00
arjwilliams 09e4859cab
🐛 Fix support for query parameters with list types, handle JSON encoding Pydantic `UndefinedType` (#9929)
Co-authored-by: Andrew Williams <Andrew.Williams@contemi.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2024-04-18 16:56:59 -05:00
Sebastián Ramírez 27da0d02a7
Add support for Pydantic's 2.7 new deprecated Field parameter, remove URL from validation errors response (#11461) 2024-04-18 14:40:57 -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
Alejandra 93034fea48
📝 Update links to Pydantic docs to point to new website (#11328) 2024-03-21 20:42:11 -05:00
bebop 478288700a
📝 Update examples for tests to replace "inexistent" for "nonexistent" (#11220) 2024-03-13 20:07:10 +01:00
Sebastián Ramírez bf771bd781
🐛 Fix unhandled growing memory for internal server errors, refactor dependencies with `yield` and `except` to require raising again as in regular Python (#11191)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-02-25 00:06:37 +01:00
Emmett Butler f18eadb7de
Refactor tests for duplicate operation ID generation for compatibility with other tools running the FastAPI test suite (#10876)
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>
2024-01-13 16:10:26 +01:00
ooknimm be0bd34446
Re-enable test in `tests/test_tutorial/test_header_params/test_tutorial003.py` after fix in Starlette (#10904)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2024-01-12 15:52:00 +01:00
Ezzeddin Abdullah 0c796747a3
📝 Update template docs with more info about `url_for` (#5937)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2024-01-11 23:25:37 +01:00
Sebastián Ramírez dd790c34ff
✏️ Fix typo in dependencies with yield source examples (#10847) 2023-12-26 21:37:34 +01: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
Alejandra Klachquin 758a8f29e1
📌 Pin Swagger UI version to 5.9.0 temporarily to handle a bug crashing it in 5.9.1 (#10529)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-10-30 13:58:58 +04:00
Sebastián Ramírez 2e14c69c31
👷 Adopt Ruff format (#10517)
* 🔧 Update pre-commit, use ruff format

* ⬆️ Upgrade dependencies, use Ruff for formatting

* 🔧 Update Ruff config

* 🔨 Update lint and format scripts, use Ruff

* 🎨 Format internals with Ruff

* 🎨 Format docs scripts

* 🎨 Format tests

* 🎨 Format extra commas in src for docs

* 📝 Update docs mentioning `@lru_cache()`, use `@lru_cache` instead to keep consistency with the format

* 🎨 Update src for docs, use plain `@lru_cache`

* 🎨 Update src for docs format and docs references
2023-10-25 00:26:06 +04:00
Heinz-Alexander Fuetterer ae84ff6e44
✏️ Fix typos in emoji docs and in some source examples (#10438) 2023-10-20 13:00:44 +04:00
Sebastián Ramírez 05ca41cfd1
Add reference (code API) docs with PEP 727, add subclass with custom docstrings for `BackgroundTasks`, refactor docs structure (#10392)
*  Add mkdocstrings and griffe-typingdoc to dependencies

* 🔧 Add mkdocstrings configs to MkDocs

* 📝 Add first WIP reference page

* ⬆️ Upgrade typing-extensions to the minimum version including Doc()

* 📝 Add docs to FastAPI parameters

* 📝 Add docstrings for OpenAPI docs utils

* 📝 Add docstrings for security utils

* 📝 Add docstrings for UploadFile

* 📝 Update docstrings in FastAPI class

* 📝 Add docstrings for path operation methods

* 📝 Add docstring for jsonable_encoder

* 📝 Add docstrings for exceptions

* 📝 Add docstsrings for parameter functions

* 📝 Add docstrings for responses

* 📝 Add docstrings for APIRouter

* ♻️ Sub-class BackgroundTasks to document it with docstrings

* 📝 Update usage of background tasks in dependencies

*  Update tests with new deprecation warnings

* 📝 Add new reference docs

* 🔧 Update MkDocs with new reference docs

*  Update pytest fixture, deprecation is raised only once

* 🎨 Update format for types in exceptions.py

* ♻️ Update annotations in BackgroundTask, `Annotated` can't take ParamSpec's P.args or P.kwargs

* ✏️ Fix typos caught by @pawamoy

* 🔧 Update and fix MkDocstrings configs from @pawamoy tips

* 📝 Update reference docs

* ✏️ Fix typos found by @pawamoy

*  Add HTTPX as a dependency for docs, for the TestClient

* 🔧 Update MkDocs config, rename websockets reference

* 🔇 Add type-ignores for Doc as the stubs haven't been released for mypy

* 🔥 Remove duplicated deprecated notice

* 🔇 Remove typing error for unreleased stub in openapi/docs.py

*  Add tests for UploadFile for coverage

* ⬆️ Upgrade griffe-typingdoc==0.2.2

* 📝 Refactor docs structure

* 🔨 Update README generation with new index frontmatter and style

* 🔨 Update generation of languages, remove from top menu, keep in lang menu

* 📝 Add OpenAPI Pydantic models

* 🔨 Update docs script to not translate Reference and Release Notes

* 🔧 Add reference for OpenAPI models

* 🔧 Update MkDocs config for mkdocstrings insiders

* 👷 Install mkdocstring insiders in CI for docs

* 🐛 Fix MkDocstrings insiders install URL

*  Move dependencies shared by docs and tests to its own requirements file

* 👷 Update cache keys for test and docs dependencies

* 📝 Remove no longer needed __init__ placeholder docstrings

* 📝 Move docstring for APIRouter to the class level (not __init__ level)

* 🔥 Remove no longer needed dummy placeholder __init__ docstring
2023-10-18 16:36:40 +04:00
Sebastián Ramírez bc935e08b6
⬆️ Upgrade compatibility with Pydantic v2.4, new renamed functions and JSON Schema input/output models with default values (#10344)
* 🚚 Refactor deprecated import general_plain_validator_function to with_info_plain_validator_function

* 🚚 Rename deprecated FieldValidationInfo to ValidationInfo

*  Update tests with new defaults for JSON Schema for default values

* ♻️ Add Pydantic v1 version of with_info_plain_validator_function

* 👷 Invalidate cache

*  Fix tests for Pydantic v1

*  Tweak tests coverage for older Pydantic v2 versions
2023-09-27 23:14:40 -05:00
Sebastián Ramírez 37d46e6b6c
Add missing test for OpenAPI examples, it was missing in coverage (#10188)
 Add missing test for OpenAPI examples, it seems it was discovered in coverage by an upgrade in AnyIO
2023-09-01 23:36:08 +02:00
Sebastián Ramírez 1b714b3177
Add support for `openapi_examples` in all FastAPI parameters (#10152)
* ♻️ Refactor model for OpenAPI Examples to use a reusable TypedDict

*  Add support for openapi_examples in parameters

* 📝 Add new docs examples for new parameter openapi_examples

* 📝 Update docs for Schema Extra to include OpenAPI examples

*  Add tests for new source examples, for openapi_examples

*  Add tests for openapi_examples corner cases and all parameters

* 💡 Tweak and ignore type annotation checks for custom TypedDict
2023-08-26 20:03:13 +02:00
Sebastián Ramírez ea43f227e5
Add support for disabling the separation of input and output JSON Schemas in OpenAPI with Pydantic v2 (#10145)
* 📝 Add docs for Separate OpenAPI Schemas for Input and Output

* 🔧 Add new docs page to MkDocs config

*  Add separate_input_output_schemas parameter to FastAPI class

* 📝 Add source examples for separating OpenAPI schemas

*  Add tests for separated OpenAPI schemas

* 📝 Add source examples for Python 3.10, 3.9, and 3.7+

* 📝 Update docs for Separate OpenAPI Schemas with new multi-version examples

*  Add and update tests for different Python versions

*  Add tests for corner cases with separate_input_output_schemas

* 📝 Update tutorial to use Union instead of Optional

* 🐛 Fix type annotations

* 🐛 Fix correct import in test

* 💄 Add CSS to simulate browser windows for screenshots

*  Add playwright as a dev dependency to automate generating screenshots

* 🔨 Add Playwright scripts to generate screenshots for new docs

* 📝 Update docs, tweak text to match screenshots

* 🍱 Add screenshots for new docs
2023-08-25 21:10:22 +02:00
Sebastián Ramírez 8cd7cfc2b6
📝 Add new docs section, How To - Recipes, move docs that don't have to be read by everyone to How To (#10114)
* 📝 Start How To docs section, move Peewee, remove Peewee from dependencies

* 🚚 Move em files to new locations

* 🚚 Move and re-structure advanced docs, move relevant to How To

* 🔧 Update MkDocs config, new files in How To

* 📝 Move docs for Conditional OpenAPI for Japanese to How To

* 📝 Move example source files for Extending OpenAPI into each of the new sections

*  Update tests with new locations for source files

* 🔥 Remove init from Peewee examples
2023-08-19 21:54:04 +02:00
Sebastián Ramírez 7a06de2bb9
♻️ Refactor tests for new Pydantic 2.2.1 (#10115) 2023-08-19 20:47:59 +02:00
Sebastián Ramírez 5e8f7f13d7
Add `ResponseValidationError` printable details, to show up in server error logs (#10078) 2023-08-14 11:49:57 +02:00
Sebastián Ramírez 19a2c3bb54
Enable Pydantic's serialization mode for responses, add support for Pydantic's `computed_field`, better OpenAPI for response models, proper required attributes, better generated clients (#10011)
*  Enable Pydantic's serialization mode for responses

*  Update tests with new Pydantic v2 serialization mode

*  Add a test for Pydantic v2's computed_field
2023-08-04 22:47:07 +02:00