import os from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parent.parent DATABASE_CODE_ROOT = PROJECT_ROOT / 'database' _runtime_override = os.environ.get('YRTV_DATA_DIR') RUNTIME_DATA_ROOT = ( Path(_runtime_override).expanduser().resolve() if _runtime_override else DATABASE_CODE_ROOT ) L1_DIR = RUNTIME_DATA_ROOT / 'L1' L2_DIR = RUNTIME_DATA_ROOT / 'L2' L3_DIR = RUNTIME_DATA_ROOT / 'L3' WEB_DIR = RUNTIME_DATA_ROOT / 'Web' L1_DB = L1_DIR / 'L1.db' L2_DB = L2_DIR / 'L2.db' L3_DB = L3_DIR / 'L3.db' WEB_DB = WEB_DIR / 'Web_App.sqlite' L2_SCHEMA = DATABASE_CODE_ROOT / 'L2' / 'schema.sql' L3_SCHEMA = DATABASE_CODE_ROOT / 'L3' / 'schema.sql' WEB_SCHEMA = DATABASE_CODE_ROOT / 'Web' / 'schema.sql' _import_override = os.environ.get('YRTV_IMPORT_DIR') OUTPUT_ARENA = ( Path(_import_override).expanduser().resolve() if _import_override else ( RUNTIME_DATA_ROOT / 'imports' if _runtime_override else PROJECT_ROOT / 'output_arena' ) ) BACKUP_ROOT = RUNTIME_DATA_ROOT / 'backups' PIPELINE_LOCK = RUNTIME_DATA_ROOT / '.pipeline.lock' def ensure_runtime_directories(): for path in ( L1_DIR, L2_DIR, L3_DIR, WEB_DIR, OUTPUT_ARENA, BACKUP_ROOT, ): path.mkdir(parents=True, exist_ok=True)