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

MAINT: FastAPIのパラメータを全てAnnotatedに移行する #1183

Merged
merged 1 commit into from
Apr 26, 2024

Conversation

sabonerune
Copy link
Contributor

内容

def func(arg: str = Query()): ...

def func(arg: Annotated[str, Query]): ...

の記法に統一します。

その他

# noqa: B008が消せた
APIは変化していない。

@sabonerune sabonerune requested a review from a team as a code owner April 15, 2024 10:33
@sabonerune sabonerune requested review from Hiroshiba and removed request for a team April 15, 2024 10:33
Copy link

Coverage Result

Resultを開く
Name Stmts Miss Cover
run.py 277 122 coverage-56%
voicevox_engine/init.py 1 0 coverage-100%
voicevox_engine/app/init.py 0 0 coverage-100%
voicevox_engine/app/dependencies.py 9 0 coverage-100%
voicevox_engine/app/routers/init.py 0 0 coverage-100%
voicevox_engine/app/routers/preset.py 37 4 coverage-89%
voicevox_engine/app/routers/setting.py 24 3 coverage-88%
voicevox_engine/app/routers/speaker.py 59 5 coverage-92%
voicevox_engine/app/routers/tts_pipeline.py 121 29 coverage-76%
voicevox_engine/app/routers/user_dict.py 60 29 coverage-52%
voicevox_engine/cancellable_engine.py 97 75 coverage-23%
voicevox_engine/core/init.py 0 0 coverage-100%
voicevox_engine/core/core_adapter.py 81 6 coverage-93%
voicevox_engine/core/core_initializer.py 60 30 coverage-50%
voicevox_engine/core/core_wrapper.py 228 160 coverage-30%
voicevox_engine/dev/init.py 0 0 coverage-100%
voicevox_engine/dev/core/init.py 0 0 coverage-100%
voicevox_engine/dev/core/mock.py 65 2 coverage-97%
voicevox_engine/dev/tts_engine/init.py 0 0 coverage-100%
voicevox_engine/dev/tts_engine/mock.py 28 0 coverage-100%
voicevox_engine/engine_manifest/EngineManifest.py 36 0 coverage-100%
voicevox_engine/engine_manifest/EngineManifestLoader.py 11 0 coverage-100%
voicevox_engine/engine_manifest/init.py 0 0 coverage-100%
voicevox_engine/library_manager.py 92 4 coverage-96%
voicevox_engine/metas/Metas.py 36 0 coverage-100%
voicevox_engine/metas/MetasStore.py 28 1 coverage-96%
voicevox_engine/metas/init.py 0 0 coverage-100%
voicevox_engine/model.py 180 3 coverage-98%
voicevox_engine/morphing.py 72 4 coverage-94%
voicevox_engine/preset/Preset.py 13 0 coverage-100%
voicevox_engine/preset/PresetError.py 2 0 coverage-100%
voicevox_engine/preset/PresetManager.py 82 2 coverage-98%
voicevox_engine/preset/init.py 0 0 coverage-100%
voicevox_engine/setting/Setting.py 9 0 coverage-100%
voicevox_engine/setting/SettingLoader.py 20 0 coverage-100%
voicevox_engine/setting/init.py 0 0 coverage-100%
voicevox_engine/tts_pipeline/init.py 0 0 coverage-100%
voicevox_engine/tts_pipeline/kana_converter.py 88 1 coverage-99%
voicevox_engine/tts_pipeline/mora_mapping.py 7 0 coverage-100%
voicevox_engine/tts_pipeline/phoneme.py 34 0 coverage-100%
voicevox_engine/tts_pipeline/text_analyzer.py 146 6 coverage-96%
voicevox_engine/tts_pipeline/tts_engine.py 268 9 coverage-97%
voicevox_engine/user_dict/part_of_speech_data.py 5 0 coverage-100%
voicevox_engine/user_dict/user_dict.py 146 12 coverage-92%
voicevox_engine/utility/init.py 0 0 coverage-100%
voicevox_engine/utility/connect_base64_waves.py 37 0 coverage-100%
voicevox_engine/utility/core_utility.py 6 0 coverage-100%
voicevox_engine/utility/core_version_utility.py 8 1 coverage-88%
voicevox_engine/utility/mutex_utility.py 13 0 coverage-100%
voicevox_engine/utility/path_utility.py 26 6 coverage-77%
voicevox_engine/utility/run_utility.py 10 7 coverage-30%
TOTAL 2522 521 coverage-79%

Copy link
Contributor

@tarepan tarepan left a comment

Choose a reason for hiding this comment

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

LGTM!

👍️ FastAPI の機能を活用し型アノテーションとして API を定義しています。よりモダンな記法なので長期メンテ性が向上しそうですね、good work!

Copy link
Member

@aoirint aoirint left a comment

Choose a reason for hiding this comment

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

LGTM!!

flake8-bugbearのB008エラーは、仮引数のデフォルト値にオブジェクトを指定した場合に、インスタンスが関数の呼び出しごとに作られず、関数が読み込まれた時に作られたものが使い回されてしまうという、Pythonのわかりにくい仕様について回避するように指摘するものという理解です。

今回の修正点はFastAPIの特殊な書き方の部分なので、この仕様が実際に問題になることはないと思いますが、Python 3.9で導入されたtyping.Annotatedに置き換えて警告を解消することで、文脈を知らない人にも理解しやすいコードになったと思います!

@aoirint aoirint merged commit 3a81ba8 into VOICEVOX:master Apr 26, 2024
3 checks passed
@sabonerune sabonerune deleted the maint/use-Annotated branch April 26, 2024 10:27
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.

3 participants