"""Где лежат данные. Код и база живут в **разных** репозиториях. Исходники — в food-market, зашифрованная база — в food-records. Смешивать их нельзя: пуш отправляет всю ветку целиком, поэтому в общем репозитории история данных неизбежно тащила бы за собой историю программы. На диске это выглядит так: exe лежит в корне, а рядом с ним папка data — самостоятельный клон репозитория с данными, со своим .git. Исходники папку data игнорируют полностью. """ from __future__ import annotations import sys from pathlib import Path VAULT_NAME = "vault.fmdb" DATA_DIR_NAME = "data" DEFAULT_DATA_REMOTE = "https://gt.ser.gay/kizya/food-records.git" 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: """Путь базы внутри репозитория данных. База лежит в его корне.""" return VAULT_NAME def backup_path() -> Path: return data_dir() / f"{VAULT_NAME}.bak" def remote_copy_path() -> Path: """Куда складывается удалённая версия базы при расхождении веток.""" return data_dir() / "vault.remote.fmdb"