2ndelement's picture
init
f1f433f
raw
history blame
No virus
1.38 kB
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()