Files
monitor-shared-utils/src/monitor_utils/config.py
T

48 lines
1.2 KiB
Python

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)