"""Где лежат данные. Собранный 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"