Skip to content

FastAPI 0.103.2に更新#766

Merged
Hiroshiba merged 7 commits intoVOICEVOX:masterfrom
aoirint:patch-fastapi-0.103
Oct 17, 2023
Merged

FastAPI 0.103.2に更新#766
Hiroshiba merged 7 commits intoVOICEVOX:masterfrom
aoirint:patch-fastapi-0.103

Conversation

@aoirint
Copy link
Member

@aoirint aoirint commented Oct 17, 2023

内容

FastAPIを最新の0.103.2に更新します。

変更点

このPR後にpoetry updateを実行した場合、FastAPI >=0.103.2, <0.104.0, httpx >=0.25.0, <0.26.0の範囲で更新されます(^0.x.yと記述した場合の仕様。Poetryのバージョン制約記法ドキュメント)。

FastAPI側の主な変更点

  • FastAPI 0.87.0Starlette 0.21.0)で、fastapi.testclient.TestClient(= starlette.testclient.TestClient)がrequestsベースからhttpxベースに変更されました
    • VOICEVOX ENGINEの既存の依存関係にhttpxは含まれておらず、TestClientを使ったテストが実行できなかったため、このPRで追加しました
  • FastAPI 0.89.0で、型ヒントをつけることで@app.getなどのアノテーションからresponse_modelパラメータを削除できるようになりました
  • FastAPI 0.95.2で、依存ライブラリStarlette 0.27.0に更新されました
  • FastAPI 0.100.0で、Pydantic V2がサポートされました
    • FastAPI側でPydantic V1との互換性が維持されており、Pydantic V1のまま動作します。このPRでは、Pydantic V1に留まっています。
    • Pydantic V1は現在もV2と並行してメンテナンスされています。
    • 時期は不明ですが、どちらかのV1メンテナンスがいずれ終了すると思われるため、V2への移行が必要です(BaseModel.parse_obj, BaseModel.parse_obj_as, BaseModel.dict, BaseModel.jsonなどのAPIが非推奨になっています)。
  • セキュリティ修正(FastAPIのリリースノート

関連 Issue

スクリーンショット・動画など

その他

@aoirint aoirint requested a review from a team as a code owner October 17, 2023 07:18
@aoirint aoirint requested review from y-chan and removed request for a team October 17, 2023 07:18
@github-actions
Copy link

github-actions bot commented Oct 17, 2023

Coverage Result

Resultを開く
Name Stmts Miss Cover
run.py 453 305 coverage-33%
voicevox_engine/init.py 1 0 coverage-100%
voicevox_engine/acoustic_feature_extractor.py 75 0 coverage-100%
voicevox_engine/cancellable_engine.py 91 71 coverage-22%
voicevox_engine/dev/core/init.py 2 0 coverage-100%
voicevox_engine/dev/core/mock.py 27 12 coverage-56%
voicevox_engine/dev/synthesis_engine/init.py 2 0 coverage-100%
voicevox_engine/dev/synthesis_engine/mock.py 36 2 coverage-94%
voicevox_engine/downloadable_library.py 93 5 coverage-95%
voicevox_engine/engine_manifest/EngineManifest.py 34 0 coverage-100%
voicevox_engine/engine_manifest/EngineManifestLoader.py 12 0 coverage-100%
voicevox_engine/engine_manifest/init.py 3 0 coverage-100%
voicevox_engine/full_context_label.py 162 3 coverage-98%
voicevox_engine/kana_parser.py 86 1 coverage-99%
voicevox_engine/metas/Metas.py 33 0 coverage-100%
voicevox_engine/metas/MetasStore.py 29 12 coverage-59%
voicevox_engine/metas/init.py 2 0 coverage-100%
voicevox_engine/model.py 160 9 coverage-94%
voicevox_engine/mora_list.py 4 0 coverage-100%
voicevox_engine/morphing.py 70 46 coverage-34%
voicevox_engine/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/preset/Preset.py 12 0 coverage-100%
voicevox_engine/preset/PresetError.py 2 0 coverage-100%
voicevox_engine/preset/PresetManager.py 81 2 coverage-98%
voicevox_engine/preset/init.py 4 0 coverage-100%
voicevox_engine/setting/Setting.py 11 0 coverage-100%
voicevox_engine/setting/SettingLoader.py 19 0 coverage-100%
voicevox_engine/setting/init.py 3 0 coverage-100%
voicevox_engine/synthesis_engine/init.py 5 0 coverage-100%
voicevox_engine/synthesis_engine/core_wrapper.py 201 146 coverage-27%
voicevox_engine/synthesis_engine/make_synthesis_engines.py 59 30 coverage-49%
voicevox_engine/synthesis_engine/synthesis_engine.py 130 11 coverage-92%
voicevox_engine/synthesis_engine/synthesis_engine_base.py 67 9 coverage-87%
voicevox_engine/user_dict.py 144 11 coverage-92%
voicevox_engine/utility/init.py 5 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/core_version_utility.py 8 1 coverage-88%
voicevox_engine/utility/mutex_utility.py 10 0 coverage-100%
voicevox_engine/utility/path_utility.py 26 8 coverage-69%
TOTAL 2204 684 coverage-69%

@aoirint aoirint mentioned this pull request Oct 17, 2023
@aoirint
Copy link
Member Author

aoirint commented Oct 17, 2023

mypyを実行するとエラーが出て型チェックが中断されるようになったので、mypyを更新するプルリクエストを作りました(メジャーバージョンアップが入るのと、CIは通るので分けましたが、分けないでもよかったかもです...)。

エラーの内容

***\Lib\site-packages\fastapi\openapi\models.py:281: error: INTERNAL ERROR -- Please try using mypy master on GitHub:
https://mypy.readthedocs.io/en/stable/common_issues.html#using-a-development-mypy-build
If this issue continues with mypy master, please report a bug at https://github.com/python/mypy/issues
version: 0.991
***\Lib\site-packages\fastapi\openapi\models.py:281: : note: please use --show-traceback to print a traceback when reporting a bug

@Hiroshiba Hiroshiba requested review from Hiroshiba and removed request for y-chan October 17, 2023 08:39
Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!

もしかしてもしかしたらなにか変化があるかもなので、一度preview releaseを作ってみようと思います。
https://github.com/VOICEVOX/voicevox_engine/releases/tag/0.15.0-preview.7

Pydantic v2でRust化したとかで速くなったんですね。
もしかしたら恩恵あるかもなので、ついでに更新しちゃっても面白いかもですね!

@Hiroshiba
Copy link
Member

poetryのcontent-hashが衝突していたので勝手ながらコンフリクト解消させていただきました。
マージします!

@Hiroshiba Hiroshiba merged commit 43cba4c into VOICEVOX:master Oct 17, 2023
@aoirint aoirint deleted the patch-fastapi-0.103 branch October 17, 2023 08:45
takana-v pushed a commit to voicevox-bridge/bridge-plugin that referenced this pull request Nov 28, 2023
Co-authored-by: Hiroshiba <hihokaruta@gmail.com>
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.

2 participants