-
Notifications
You must be signed in to change notification settings - Fork 0
fix(deps): update beta #10
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
1faa2ef
to
cbb01c6
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
41dc854
to
389c0e4
Compare
389c0e4
to
06ffa1e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
06ffa1e
to
b55cde3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
b55cde3
to
171bf54
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
171bf54
to
f8f9352
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
f8f9352
to
1fe33cf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
1fe33cf
to
6ba5da4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
6ba5da4
to
5ce666e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
5ce666e
to
5c49eee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
a299f29
to
d2d8dfc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
d2d8dfc
to
409789f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
409789f
to
dff38d9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
dff38d9
to
d1efd6f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
d1efd6f
to
cc0609c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
cc0609c
to
a9e5834
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
a9e5834
to
a3c94c8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
a3c94c8
to
83de9ab
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
83de9ab
to
ca47085
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
ca47085
to
f544fbb
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
f544fbb
to
9a9c070
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
9a9c070
to
a6be752
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
a6be752
to
8fe7c99
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
This PR contains the following updates:
0.86.0
->0.106.0
0.21.0
->0.21.1
Release Notes
tiangolo/fastapi (fastapi)
v0.106.0
Compare Source
Breaking Changes
Using resources from dependencies with
yield
in background tasks is no longer supported.This change is what supports the new features, read below. 🤓
Dependencies with
yield
,HTTPException
and Background TasksDependencies with
yield
now can raiseHTTPException
and other exceptions afteryield
. 🎉Read the new docs here: Dependencies with
yield
andHTTPException
.Before FastAPI 0.106.0, raising exceptions after
yield
was not possible, the exit code in dependencies withyield
was executed after the response was sent, so Exception Handlers would have already run.This was designed this way mainly to allow using the same objects "yielded" by dependencies inside of background tasks, because the exit code would be executed after the background tasks were finished.
Nevertheless, as this would mean waiting for the response to travel through the network while unnecessarily holding a resource in a dependency with yield (for example a database connection), this was changed in FastAPI 0.106.0.
Additionally, a background task is normally an independent set of logic that should be handled separately, with its own resources (e.g. its own database connection).
If you used to rely on this behavior, now you should create the resources for background tasks inside the background task itself, and use internally only data that doesn't depend on the resources of dependencies with
yield
.For example, instead of using the same database session, you would create a new database session inside of the background task, and you would obtain the objects from the database using this new session. And then instead of passing the object from the database as a parameter to the background task function, you would pass the ID of that object and then obtain the object again inside the background task function.
The sequence of execution before FastAPI 0.106.0 was like the diagram in the Release Notes for FastAPI 0.106.0.
The new execution flow can be found in the docs: Execution of dependencies with
yield
.v0.105.0
Compare Source
Features
Annotated[str, Field(), Query()]
. PR #10773 by @tiangolo.Refactors
Docs
Internal
v0.104.1
Compare Source
Fixes
Docs
docs/en/docs/tutorial/metadata.md
. PR #10433 by @worldworm.docs/en/docs/tutorial/path-params.md
. PR #10043 by @giuliowaitforitdavide.docs/en/docs/reference/dependencies.md
. PR #10465 by @suravshresth.docs/en/docs/tutorial/body-nested-models.md
. PR #10468 by @yogabonito.pydantic.Required
indocs/en/docs/tutorial/query-params-str-validations.md
. PR #10469 by @yogabonito.docs/en/docs/reference/index.md
. PR #10467 by @tarsil.Internal
docs/en/docs/async.md
anddocs/zh/docs/async.md
to make them relative. PR #10498 by @hasnatsajid.docs/em/docs/async.md
. PR #10507 by @hasnatsajid.docs/em/docs/index.md
, Python 3.8. PR #10521 by @kerriop.CITATION.cff
file for academic citations. PR #10496 by @tiangolo.v0.104.0
Compare Source
Features
BackgroundTasks
, refactor docs structure. PR #10392 by @tiangolo. New docs at FastAPI Reference - Code API.Upgrades
Internal
v0.103.2
Compare Source
Refactors
Translations
docs/uk/docs/tutorial/extra-data-types.md
. PR #10132 by @ArtemKhymenko.docs/fr/docs/advanced/path-operation-advanced-configuration.md
,docs/fr/docs/alternatives.md
,docs/fr/docs/async.md
,docs/fr/docs/features.md
,docs/fr/docs/help-fastapi.md
,docs/fr/docs/index.md
,docs/fr/docs/python-types.md
,docs/fr/docs/tutorial/body.md
,docs/fr/docs/tutorial/first-steps.md
,docs/fr/docs/tutorial/query-params.md
. PR #10154 by @s-rigaud.docs/zh/docs/async.md
. PR #5591 by @mkdir700.docs/tutorial/security/simple-oauth2.md
. PR #3844 by @jaystone776.docs/ko/docs/deployment/cloud.md
. PR #10191 by @Sion99.docs/ja/docs/deployment/https.md
. PR #10298 by @tamtam-fitness.docs/ru/docs/tutorial/body-fields.md
. PR #10224 by @AlertRED.docs/pl/docs/help-fastapi.md
. PR #10121 by @romabozhanovgithub.docs/ru/docs/tutorial/header-params.md
. PR #10226 by @AlertRED.docs/zh/docs/deployment/versions.md
. PR #10276 by @xzmeng.Internal
v0.103.1
Compare Source
Fixes
Docs
regex
topattern
. PR #10085 by @pablodorrio.docs/en/docs/deployment/server-workers.md
. PR #10066 by @tamtam-fitness.docs/en/docs/tutorial/extra-data-types.md
. PR #10155 by @hasnatsajid.docs/en/docs/tutorial/handling-errors.md
. PR #10170 by @poupapaa.docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md
. PR #10172 by @ragul-kachiappan.Translations
docs/pt/docs/tutorial/path-params.md
. PR #10126 by @LecoOliveira.docs/yo/docs/index.md
. PR #10033 by @AfolabiOlaoluwa.docs/uk/docs/python-types.md
. PR #10080 by @rostik1410.docs/vi/docs/tutorial/first-steps.md
anddocs/vi/docs/tutorial/index.md
. PR #10088 by @magiskboy.docs/uk/docs/alternatives.md
. PR #10060 by @whysage.docs/uk/docs/tutorial/index.md
. PR #10079 by @rostik1410.docs/en/docs/how-to/separate-openapi-schemas.md
anddocs/en/docs/tutorial/schema-extra-example.md
. PR #10189 by @xzmeng.docs/zh/docs/advanced/generate-clients.md
. PR #9883 by @funny-cat-happy.Refactors
fastapi/applications.py
. PR #10045 by @AhsanSheraz.Internal
v0.103.0
Compare Source
Features
openapi_examples
in all FastAPI parameters. PR #10152 by @tiangolo.Docs
v0.102.0
Compare Source
Features
separate_input_output_schemas=False
. PR #10145 by @tiangolo.Refactors
Docs
Internal
v0.101.1
Compare Source
Fixes
ResponseValidationError
printable details, to show up in server error logs. PR #10078 by @tiangolo.Refactors
fastapi/params.py
. PR #9854 by @russbiggs.fastapi/concurrency.py
andfastapi/routing.py
. PR #9590 by @ElliottLarsen.Docs
docs/en/docs/contributing.md
. PR #9878 by @VicenteMerino.docs/en/docs/tutorial/bigger-applications.md
. PR #9806 by @theonlykingpin.Translations
docs/ja/docs/deployment/concepts.md
. PR #10062 by @tamtam-fitness.docs/ja/docs/deployment/server-workers.md
. PR #10064 by @tamtam-fitness.docs/ja/docs/deployment/docker.md
. PR #10073 by @tamtam-fitness.docs/uk/docs/fastapi-people.md
. PR #10059 by @rostik1410.docs/uk/docs/tutorial/cookie-params.md
. PR #10032 by @rostik1410.docs/ru/docs/deployment/docker.md
. PR #9971 by @Xewus.docs/vi/docs/python-types.md
. PR #10047 by @magiskboy.docs/ru/docs/tutorial/dependencies/global-dependencies.md
. PR #9970 by @dudyaosuplayer.docs/ur/docs/benchmarks.md
. PR #9974 by @AhsanSheraz.Internal
v0.101.0
Compare Source
Features
computed_field
, better OpenAPI for response models, proper required attributes, better generated clients. PR #10011 by @tiangolo.Refactors
jsonable_encoder
. PR #9840 by @iudeen.Upgrades
Translations
docs/ru/docs/tutorial/security/index.md
. PR #9963 by @eVery1337.Internal
v0.100.1
Compare Source
Fixes
MultHostUrl
toAnyUrl
for compatibility with older versions of Pydantic v1. PR #9852 by @Kludex.Docs
Translations
docs/uk/docs/tutorial/body.md
. PR #4574 by @ss-o-furda.docs/vi/docs/features.md
anddocs/vi/docs/index.md
. PR #3006 by @magiskboy.docs/ko/docs/async.md
. PR #4179 by @NinaHwang.docs/zh/docs/tutorial/background-tasks.md
. PR #9812 by @wdh99.docs/fr/docs/tutorial/query-params-str-validations.md
. PR #4075 by @Smlep.docs/fr/docs/tutorial/index.md
. PR #2234 by @JulianMaurin.docs/fr/docs/contributing.md
. PR #2132 by @JulianMaurin.docs/fr/docs/benchmarks.md
. PR #2155 by @clemsau.docs/ru/docs/tutorial/request-forms.md
. PR #9841 by @dedkot01.docs/zh/docs/tutorial/handling-errors.md
. PR #9485 by @Creat55.Internal
v0.100.0
Compare Source
✨ Support for Pydantic v2 ✨
Pydantic version 2 has the core re-written in Rust and includes a lot of improvements and features, for example:
...all this while keeping the same Python API. In most of the cases, for simple models, you can simply upgrade the Pydantic version and get all the benefits. 🚀
In some cases, for pure data validation and processing, you can get performance improvements of 20x or more. This means 2,000% or more. 🤯
When you use FastAPI, there's a lot more going on, processing the request and response, handling dependencies, executing your own code, and particularly, waiting for the network. But you will probably still get some nice performance improvements just from the upgrade.
The focus of this release is compatibility with Pydantic v1 and v2, to make sure your current apps keep working. Later there will be more focus on refactors, correctness, code improvements, and then performance improvements. Some third-party early beta testers that ran benchmarks on the beta releases of FastAPI reported improvements of 2x - 3x. Which is not bad for just doing
pip install --upgrade fastapi pydantic
. This was not an official benchmark and I didn't check it myself, but it's a good sign.Migration
Check out the Pydantic migration guide.
For the things that need changes in your Pydantic models, the Pydantic team built
bump-pydantic
.A command line tool that will process your code and update most of the things automatically for you. Make sure you have your code in git first, and review each of the changes to make sure everything is correct before committing the changes.
Pydantic v1
This version of FastAPI still supports Pydantic v1. And although Pydantic v1 will be deprecated at some point, ti will still be supported for a while.
This means that you can install the new Pydantic v2, and if something fails, you can install Pydantic v1 while you fix any problems you might have, but having the latest FastAPI.
There are tests for both Pydantic v1 and v2, and test coverage is kept at 100%.
Changes
There are new parameter fields supported by Pydantic
Field()
for:Path()
Query()
Header()
Cookie()
Body()
Form()
File()
The new parameter fields are:
default_factory
alias_priority
validation_alias
serialization_alias
discriminator
strict
multiple_of
allow_inf_nan
max_digits
decimal_places
json_schema_extra
...you can read about them in the Pydantic docs.
The parameter
regex
has been deprecated and replaced bypattern
.New Pydantic models use an improved and simplified attribute
model_config
that takes a simple dict instead of an internal classConfig
for their configuration.The attribute
schema_extra
for the internal classConfig
has been replaced by the keyjson_schema_extra
in the newmodel_config
dict.When you install
"fastapi[all]"
it now also includes:pydantic-settings
- for settings management.pydantic-extra-types
- for extra types to be used with Pydantic.Now Pydantic Settings is an additional optional package (included in
"fastapi[all]"
). To use settings you should now importfrom pydantic_settings import BaseSettings
instead of importing frompydantic
directly.PR #9816 by @tiangolo, included all the work done (in multiple PRs) on the beta branch (
main-pv2
).v0.99.1
Compare Source
Fixes
additionalProperties: false
. PR #9781 by @tiangolo.Docs
v0.99.0
Compare Source
Note: this is the last release before supporting Pydantic v2. You can try out the beta with support for Pydantic v2 now, a new beta supporting Pydantic v2 with these same changes from this release will be available in the next hours/days. And the final version (0.100.0) with support for Pydantic v2 will be released in the next days (next week).
Now, back to this release (this one doesn't include the beta support for Pydantic v2).
This release has ✨ OpenAPI 3.1.0 ✨ 🎉
Features
✨ Add support for OpenAPI 3.1.0. PR #9770 by @tiangolo.
examples
field inQuery()
,Cookie()
,Body()
, etc. based on the latest JSON Schema and OpenAPI. Now it takes a list of examples and they are included directly in the JSON Schema, not outside. Read more about it (including the historical technical details) in the updated docs: Tutorial: Declare Request Example Data.✨ Add support for
deque
objects and children injsonable_encoder
. PR #9433 by @cranium.Docs
Translations
docs/fa/docs/advanced/sub-applications.md
. PR #9692 by @mojtabapaso.docs/ru/docs/tutorial/response-model.md
. PR #9675 by @glsglsgls.Internal
v0.98.0
Compare Source
Note: please also help me try out the beta with support for Pydantic v2: https://github.com/tiangolo/fastapi/releases/tag/0.100.0-beta1
Now, back to this release (this one doesn't include the beta support for Pydantic v2).
Features
redirect_slashes
at the FastAPI app level. PR #3432 by @cyberlis.Docs
docs/en/docs/tutorial/debugging.md
. PR #9581 by @ivan-abc.docs/en/docs/tutorial/security/index.md
. PR #9561 by @jyothish-mohan.Annotated
notes indocs/en/docs/tutorial/schema-extra-example.md
. PR #9620 by @Alexandrhub.Annotation
->Annotated
indocs/en/docs/tutorial/query-params-str-validations.md
. PR #9625 by @mccricardo.Translations
docs/ru/docs/tutorial/metadata.md
. PR #9681 by @TabarakoAkula.docs/es/docs/tutorial/first-steps.md
. PR #9571 by @lilidl-nft.docs/tutorial/path-operation-configuration.md
. PR #9696 by @TabarakoAkula.docs/zh/docs/advanced/security/index.md
. PR #9666 by @lordqyxz.docs/zh/docs/advanced/settings.md
. PR #9652 by @ChoyeonChern.docs/zh/docs/advanced/websockets.md
. PR #9651 by @ChoyeonChern.docs/zh/docs/tutorial/testing.md
. PR #9641 by @wdh99.docs/tutorial/extra-models.md
. PR #9619 by @ivan-abc.docs/tutorial/cors.md
. PR #9608 by @ivan-abc.docs/pl/docs/features.md
. PR #5348 by @mbroton.docs/ru/docs/tutorial/body-nested-models.md
. PR #9605 by @Alexandrhub.Internal
v0.97.0
Compare Source
Features
dependencies
in WebSocket routes. PR #4534 by @paulo-raca.WebSocketRequestValidationError
(which also allows to override it). PR #6030 by @kristjanvalur.Refactors
AsyncExitStackMiddleware
as without Python 3.6AsyncExitStack
is always available. PR #9657 by @tiangolo.Upgrades
Internal
v0.96.1
Compare Source
Fixes
HTTPException
header type annotations. PR #9648 by @tiangolo.gte
toge
. PR #9635 by @tiangolo.Upgrades
Refactors
media_type
fromORJSONResponse
as it's inherited from the parent class. PR #5805 by @Kludex.HTTPException
only when needed, optimization refactor. PR #5356 by @pawamoy.Docs
Translations
docs/id/docs/tutorial/index.md
. PR #5635 by @purwowd.docs/ru/docs/tutorial/index.md
. PR #5896 by @Wilidon.docs/zh/docs/advanced/response-change-status-code.md
anddocs/zh/docs/advanced/response-headers.md
. PR #9544 by @ChoyeonChern.docs/ru/docs/tutorial/schema-extra-example.md
. PR #9621 by @Alexandrhub.Internal
v0.96.0
Compare Source
Features
create_cloned_field
to use a global cache and improve startup performance. PR #4645 by @madkinsz and previous original PR by @huonw.Docs
Translations
docs/tutorial/body.md
. PR #3885 by @solomein-sv.docs/ru/docs/tutorial/static-files.md
. PR #9580 by @Alexandrhub.docs/ru/docs/tutorial/query-params.md
. PR #9584 by @Alexandrhub.docs/ru/docs/tutorial/first-steps.md
. PR #9471 by @AGolicyn.docs/ru/docs/tutorial/debugging.md
. PR [#9579Configuration
📅 Schedule: Branch creation - "after 9pm,before 5am" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.