import os | |
import sys | |
import traceback | |
from pathlib import Path | |
from appdirs import user_data_dir | |
def engine_root() -> Path: | |
if is_development(): | |
root_dir = Path(__file__).parents[2] | |
# Nuitka/Pyinstallerでビルドされている場合 | |
else: | |
root_dir = Path(sys.argv[0]).parent | |
return root_dir.resolve(strict=True) | |
def is_development() -> bool: | |
""" | |
開発版かどうか判定する関数 | |
Nuitka/Pyinstallerでコンパイルされていない場合は開発環境とする。 | |
""" | |
# nuitkaビルドをした際はグローバルに__compiled__が含まれる | |
if "__compiled__" in globals(): | |
return False | |
# pyinstallerでビルドをした際はsys.frozenが設定される | |
elif getattr(sys, "frozen", False): | |
return False | |
return True | |
def get_save_dir(): | |
# FIXME: ファイル保存場所をエンジン固有のIDが入ったものにする | |
# FIXME: Windowsは`voicevox-engine/voicevox-engine`ディレクトリに保存されているので | |
# `VOICEVOX/voicevox-engine`に変更する | |
if is_development(): | |
app_name = "voicevox-engine-dev" | |
else: | |
app_name = "voicevox-engine" | |
return Path(user_data_dir(app_name)) | |
def delete_file(file_path: str) -> None: | |
try: | |
os.remove(file_path) | |
except OSError: | |
traceback.print_exc() | |