import logging import json import pathlib from functools import cache from enum import Enum from monitor_utils.constants import ( PROXIES_PATH, PROJECT_ROOT, PRODUCTION_BOT_TOKEN, DEVELOPMENT_BOT_TOKEN, LOGGERS, ) class DevelopmentMode(str, Enum): PRODUCTION = "PRODUCTION" DEVELOPMENT = "DEVELOPMENT" def is_production(development_mode: DevelopmentMode) -> bool: return development_mode == DevelopmentMode.PRODUCTION def get_bot_token(is_production: bool) -> str: if is_production: return PRODUCTION_BOT_TOKEN return DEVELOPMENT_BOT_TOKEN def get_config( monitor_name: str, use_production_path: bool = False ) -> tuple[dict, pathlib.Path]: monitor_name = monitor_name.replace(".json", "") if use_production_path: config_path = PROJECT_ROOT / "configs" / f"{monitor_name}.json" else: config_path = PROJECT_ROOT / "tests" / "configs" / f"{monitor_name}.json" with open(config_path) as f: return json.load(f), config_path def set_logger_levels(loggers: list[str] = LOGGERS, level: int = logging.WARNING): for name in loggers: logging.getLogger(name).setLevel(level)