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

ライブラリ管理未対応だったらAPIが実装されないように変更 #886

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
154 changes: 78 additions & 76 deletions run.py
Original file line number Diff line number Diff line change
Expand Up @@ -867,85 +867,87 @@ def speaker_info(

return ret_data

@app.get(
"/downloadable_libraries",
response_model=list[DownloadableLibraryInfo],
tags=["音声ライブラリ管理"],
)
def downloadable_libraries() -> list[DownloadableLibraryInfo]:
"""
ダウンロード可能な音声ライブラリの情報を返します。

Returns
-------
ret_data: list[DownloadableLibrary]
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
return library_manager.downloadable_libraries()

@app.get(
"/installed_libraries",
response_model=dict[str, InstalledLibraryInfo],
tags=["音声ライブラリ管理"],
)
def installed_libraries() -> dict[str, InstalledLibraryInfo]:
"""
インストールした音声ライブラリの情報を返します。

Returns
-------
ret_data: dict[str, InstalledLibrary]
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
return library_manager.installed_libraries()
if engine_manifest_data.supported_features.manage_library:

@app.post(
"/install_library/{library_uuid}",
status_code=204,
tags=["音声ライブラリ管理"],
)
async def install_library(
library_uuid: str,
request: Request,
) -> Response:
"""
音声ライブラリをインストールします。
音声ライブラリのZIPファイルをリクエストボディとして送信してください。

Parameters
----------
library_uuid: str
音声ライブラリのID
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
archive = BytesIO(await request.body())
loop = asyncio.get_event_loop()
await loop.run_in_executor(
None, library_manager.install_library, library_uuid, archive
@app.get(
Comment on lines +870 to +872
Copy link
Member Author

Choose a reason for hiding this comment

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

ちなみにここの空行はフォーマッターが入れてきました。

"/downloadable_libraries",
response_model=list[DownloadableLibraryInfo],
tags=["音声ライブラリ管理"],
)
return Response(status_code=204)

@app.post(
"/uninstall_library/{library_uuid}",
status_code=204,
tags=["音声ライブラリ管理"],
)
def uninstall_library(library_uuid: str) -> Response:
"""
音声ライブラリをアンインストールします。
def downloadable_libraries() -> list[DownloadableLibraryInfo]:
"""
ダウンロード可能な音声ライブラリの情報を返します。

Returns
-------
ret_data: list[DownloadableLibrary]
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
return library_manager.downloadable_libraries()

@app.get(
"/installed_libraries",
response_model=dict[str, InstalledLibraryInfo],
tags=["音声ライブラリ管理"],
)
def installed_libraries() -> dict[str, InstalledLibraryInfo]:
"""
インストールした音声ライブラリの情報を返します。

Returns
-------
ret_data: dict[str, InstalledLibrary]
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
return library_manager.installed_libraries()

@app.post(
"/install_library/{library_uuid}",
status_code=204,
tags=["音声ライブラリ管理"],
)
async def install_library(
library_uuid: str,
request: Request,
) -> Response:
"""
音声ライブラリをインストールします。
音声ライブラリのZIPファイルをリクエストボディとして送信してください。

Parameters
----------
library_uuid: str
音声ライブラリのID
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
archive = BytesIO(await request.body())
loop = asyncio.get_event_loop()
await loop.run_in_executor(
None, library_manager.install_library, library_uuid, archive
)
return Response(status_code=204)

Parameters
----------
library_uuid: str
音声ライブラリのID
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
library_manager.uninstall_library(library_uuid)
return Response(status_code=204)
@app.post(
"/uninstall_library/{library_uuid}",
status_code=204,
tags=["音声ライブラリ管理"],
)
def uninstall_library(library_uuid: str) -> Response:
"""
音声ライブラリをアンインストールします。

Parameters
----------
library_uuid: str
音声ライブラリのID
"""
if not engine_manifest_data.supported_features.manage_library:
raise HTTPException(status_code=404, detail="この機能は実装されていません")
library_manager.uninstall_library(library_uuid)
return Response(status_code=204)

@app.post("/initialize_style_id", status_code=204, tags=["その他"])
def initialize_style_id(
Expand Down