Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency fastapi to v0.96.0 #9

Merged
merged 1 commit into from
Jun 6, 2023
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented May 4, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
fastapi ==0.94.1 -> ==0.96.0 age adoption passing confidence

Release Notes

tiangolo/fastapi

v0.96.0

Compare Source

Features
  • ⚡ Update create_cloned_field to use a global cache and improve startup performance. PR #​4645 by @​madkinsz and previous original PR by @​huonw.
Docs
Translations
Internal

v0.95.2

Compare Source

Translations
Internal

v0.95.1

Compare Source

Fixes
Docs
  • 🌐 🔠 📄 🐢 Translate docs to Emoji 🥳 🎉 💥 🤯 🤯. PR #​5385 by @​LeeeeT.
  • 📝 Add notification message warning about old versions of FastAPI not supporting Annotated. PR #​9298 by @​grdworkin.
  • 📝 Fix typo in docs/en/docs/advanced/behind-a-proxy.md. PR #​5681 by @​Leommjr.
  • ✏ Fix wrong import from typing module in Persian translations for docs/fa/docs/index.md. PR #​6083 by @​Kimiaattaei.
  • ✏️ Fix format, remove unnecessary asterisks in docs/en/docs/help-fastapi.md. PR #​9249 by @​armgabrielyan.
  • ✏ Fix typo in docs/en/docs/tutorial/query-params-str-validations.md. PR #​9272 by @​nicornk.
  • ✏ Fix typo/bug in inline code example in docs/en/docs/tutorial/query-params-str-validations.md. PR #​9273 by @​tim-habitat.
  • ✏ Fix typo in docs/en/docs/tutorial/path-params-numeric-validations.md. PR #​9282 by @​aadarsh977.
  • ✏ Fix typo: 'wll' to 'will' in docs/en/docs/tutorial/query-params-str-validations.md. PR #​9380 by @​dasstyxx.
Translations
  • 🌐 Add French translation for docs/fr/docs/advanced/index.md. PR #​5673 by @​axel584.
  • 🌐 Add Portuguese translation for docs/pt/docs/tutorial/body-nested-models.md. PR #​4053 by @​luccasmmg.
  • 🌐 Add Russian translation for docs/ru/docs/alternatives.md. PR #​5994 by @​Xewus.
  • 🌐 Add Portuguese translation for docs/pt/docs/tutorial/extra-models.md. PR #​5912 by @​LorhanSohaky.
  • 🌐 Add Portuguese translation for docs/pt/docs/tutorial/path-operation-configuration.md. PR #​5936 by @​LorhanSohaky.
  • 🌐 Add Russian translation for docs/ru/docs/contributing.md. PR #​6002 by @​stigsanek.
  • 🌐 Add Korean translation for docs/tutorial/dependencies/classes-as-dependencies.md. PR #​9176 by @​sehwan505.
  • 🌐 Add Russian translation for docs/ru/docs/project-generation.md. PR #​9243 by @​Xewus.
  • 🌐 Add French translation for docs/fr/docs/index.md. PR #​9265 by @​frabc.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/query-params-str-validations.md. PR #​9267 by @​dedkot01.
  • 🌐 Add Russian translation for docs/ru/docs/benchmarks.md. PR #​9271 by @​Xewus.
Internal

v0.95.0

Compare Source

Highlights

This release adds support for dependencies and parameters using Annotated and recommends its usage. ✨

This has several benefits, one of the main ones is that now the parameters of your functions with Annotated would not be affected at all.

If you call those functions in other places in your code, the actual default values will be kept, your editor will help you notice missing required arguments, Python will require you to pass required arguments at runtime, you will be able to use the same functions for different things and with different libraries (e.g. Typer will soon support Annotated too, then you could use the same function for an API and a CLI), etc.

Because Annotated is standard Python, you still get all the benefits from editors and tools, like autocompletion, inline errors, etc.

One of the biggest benefits is that now you can create Annotated dependencies that are then shared by multiple path operation functions, this will allow you to reduce a lot of code duplication in your codebase, while keeping all the support from editors and tools.

For example, you could have code like this:

def get_current_user(token: str):

### authenticate user
    return User()

@​app.get("/items/")
def read_items(user: User = Depends(get_current_user)):
    ...

@​app.post("/items/")
def create_item(*, user: User = Depends(get_current_user), item: Item):
    ...

@​app.get("/items/{item_id}")
def read_item(*, user: User = Depends(get_current_user), item_id: int):
    ...

@​app.delete("/items/{item_id}")
def delete_item(*, user: User = Depends(get_current_user), item_id: int):
    ...

There's a bit of code duplication for the dependency:

user: User = Depends(get_current_user)

...the bigger the codebase, the more noticeable it is.

Now you can create an annotated dependency once, like this:

CurrentUser = Annotated[User, Depends(get_current_user)]

And then you can reuse this Annotated dependency:

CurrentUser = Annotated[User, Depends(get_current_user)]

@​app.get("/items/")
def read_items(user: CurrentUser):
    ...

@​app.post("/items/")
def create_item(user: CurrentUser, item: Item):
    ...

@​app.get("/items/{item_id}")
def read_item(user: CurrentUser, item_id: int):
    ...

@​app.delete("/items/{item_id}")
def delete_item(user: CurrentUser, item_id: int):
    ...

...and CurrentUser has all the typing information as User, so your editor will work as expected (autocompletion and everything), and FastAPI will be able to understand the dependency defined in Annotated. 😎

Roughly all the docs have been rewritten to use Annotated as the main way to declare parameters and dependencies. All the examples in the docs now include a version with Annotated and a version without it, for each of the specific Python versions (when there are small differences/improvements in more recent versions). There were around 23K new lines added between docs, examples, and tests. 🚀

The key updated docs are:

Special thanks to @​nzig for the core implementation and to @​adriangb for the inspiration and idea with Xpresso! 🚀

Features
  • ✨Add support for PEP-593 Annotated for specifying dependencies and parameters. PR #​4871 by @​nzig.
Docs
  • 📝 Tweak tip recommending Annotated in docs. PR #​9270 by @​tiangolo.
  • 📝 Update order of examples, latest Python version first, and simplify version tab names. PR #​9269 by @​tiangolo.
  • 📝 Update all docs to use Annotated as the main recommendation, with new examples and tests. PR #​9268 by @​tiangolo.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/fastapi-0.x branch from 703ee71 to 7ddf511 Compare May 16, 2023 17:19
@renovate renovate bot changed the title Update dependency fastapi to v0.95.1 Update dependency fastapi to v0.95.2 May 16, 2023
@renovate renovate bot changed the title Update dependency fastapi to v0.95.2 Update dependency fastapi to v0.96.0 Jun 3, 2023
@renovate renovate bot force-pushed the renovate/fastapi-0.x branch from 7ddf511 to 700b76d Compare June 3, 2023 16:46
@runyontr runyontr merged commit e805313 into main Jun 6, 2023
@renovate renovate bot deleted the renovate/fastapi-0.x branch June 6, 2023 10:27
andrewrisse pushed a commit that referenced this pull request Apr 18, 2024
Update dependency fastapi to v0.96.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant