config.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import json
  2. import os
  3. from pathlib import Path
  4. BASE_DIR = Path(__file__).resolve().parents[1]
  5. SERVER_CONFIG_PATH = str(BASE_DIR / "cfg" / "server_config.json")
  6. HARDWARE_CONFIG_PATH = str(BASE_DIR / "cfg" / "hw_config.json")
  7. class Config:
  8. def __init__(self, server_config_path=SERVER_CONFIG_PATH, hw_config_path=HARDWARE_CONFIG_PATH):
  9. self.server_config_path = server_config_path
  10. self.hardware_config_path = hw_config_path
  11. self._load_config()
  12. def _load_config(self):
  13. """Загружает конфигурацию из JSON-файлов"""
  14. if not os.path.exists(self.server_config_path):
  15. raise FileNotFoundError(f"Файл конфигурации сервера {self.server_config_path} не найден!")
  16. if not os.path.exists(self.hardware_config_path):
  17. raise FileNotFoundError(f"Файл конфигурации томографа {self.hardware_config_path} не найден!")
  18. with open(self.server_config_path, "r") as f:
  19. self.config = json.load(f)
  20. with open(self.hardware_config_path, "r") as f:
  21. self.hw_config = json.load(f)
  22. def get(self, key, default=None):
  23. """Получить значение из server-конфига с безопасным доступом"""
  24. return self.config.get(key, default)
  25. def get_hw(self, key, default=None):
  26. """Получить значение из hw-конфига с безопасным доступом"""
  27. return self.hw_config.get(key, default)
  28. config = Config()