37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
||
# hub/ticket/state/paths.py
|
||
|
||
"""Пути хранения Ticket внутри общей системы."""
|
||
|
||
from __future__ import annotations
|
||
|
||
import os
|
||
from pathlib import Path
|
||
|
||
from PySide6.QtCore import QStandardPaths
|
||
|
||
|
||
def _default_root_dir() -> Path:
|
||
"""Вернуть корневую директорию хранения Ticket."""
|
||
base = QStandardPaths.writableLocation(QStandardPaths.AppDataLocation)
|
||
root_base = Path(base) if base else Path.cwd() / ".usms_data"
|
||
return root_base / "ticket"
|
||
|
||
|
||
ROOT_DIR = Path(os.environ.get("USMS_TICKET_ROOT_DIR", _default_root_dir()))
|
||
ACTS_DIR = Path(os.environ.get("USMS_TICKET_ACTS_DIR", ROOT_DIR / "acts"))
|
||
REPORTS_DIR = Path(os.environ.get("USMS_TICKET_REPORTS_DIR", ROOT_DIR / "reports"))
|
||
_PROJECT_ROOT = Path(__file__).resolve().parents[3]
|
||
ARCHIVE_DIR = Path(os.environ.get("USMS_TICKET_ARCHIVE_DIR", _PROJECT_ROOT / "DB data"))
|
||
DATA_DIR = Path(os.environ.get("USMS_TICKET_DATA_DIR", ROOT_DIR / "data"))
|
||
TASKS_FILE = DATA_DIR / "tasks.json"
|
||
|
||
|
||
def ensure_storage_directories() -> None:
|
||
"""Создать каталоги хранения Ticket при фактической работе с данными."""
|
||
ROOT_DIR.mkdir(parents=True, exist_ok=True)
|
||
ACTS_DIR.mkdir(parents=True, exist_ok=True)
|
||
REPORTS_DIR.mkdir(parents=True, exist_ok=True)
|
||
ARCHIVE_DIR.mkdir(parents=True, exist_ok=True)
|
||
DATA_DIR.mkdir(parents=True, exist_ok=True)
|