food-market/app/paths.py

43 lines
1.3 KiB
Python
Raw Normal View History

"""Где лежат данные.
Собранный exe кладётся в корень клона репозитория, а база в data/ рядом
с ним. При запуске из исходников корнем считается сама папка проекта, поэтому
разработка и собранное приложение работают с одним и тем же файлом.
"""
from __future__ import annotations
import sys
from pathlib import Path
VAULT_NAME = "vault.fmdb"
DATA_DIR_NAME = "data"
def app_root() -> Path:
if getattr(sys, "frozen", False):
return Path(sys.executable).resolve().parent
return Path(__file__).resolve().parent.parent
def data_dir() -> Path:
return app_root() / DATA_DIR_NAME
def vault_path() -> Path:
return data_dir() / VAULT_NAME
def vault_rel_posix() -> str:
"""Путь базы для git — всегда со слешами и относительно корня репозитория."""
return f"{DATA_DIR_NAME}/{VAULT_NAME}"
def backup_path() -> Path:
return data_dir() / f"{VAULT_NAME}.bak"
def remote_copy_path() -> Path:
"""Куда складывается удалённая версия базы при расхождении веток."""
return data_dir() / "vault.remote.fmdb"