"""Модуль environment содержит настройки окружения и URL-адресов. Класс Environment предоставляет методы для работы с окружением, токенами и URL-адресами API. """ import os from typing import Dict class Environment: """Управление окружением, URL-адресами и токенами. Атрибуты класса: TEST (str): Константа для тестового окружения. DEVELOP (str): Константа для dev-окружения. URLS (Dict[str, str]): Словарь URL для разных окружений. """ TEST: str = 'test' DEVELOP: str = 'develop' URLS: Dict[str, str] = { TEST: 'http://192.168.2.76/', DEVELOP: 'http://192.168.2.69/' } def __init__(self) -> None: """Инициализирует объект окружения и токены.""" try: self.env: str = os.getenv('ENV', self.TEST) self.access_token: str = "" self.token: str = "" except KeyError: self.env: str = self.TEST def get_base_url(self) -> str: """Возвращает базовый URL для текущего окружения. Возвращает: str: Базовый URL с путем для теста или без него. """ if self.env in self.URLS: if self.env == self.TEST: return self.URLS[self.env] + "e-nms-ui/" return self.URLS[self.env] raise Exception(f"Unknown value of ENV variable {self.env}") def get_request_url(self) -> str: """Возвращает URL для API-запросов. Возвращает: str: URL для API-запросов. """ if self.env in self.URLS: return self.URLS[self.env] raise Exception(f"Unknown value of ENV variable {self.env}") def set_access_token(self, token: str) -> None: """Устанавливает токен доступа. Аргументы: token (str): Токен для установки. """ self.token = token def get_access_token(self) -> str: """Возвращает текущий токен доступа. Возвращает: str: Текущий токен доступа. """ return self.token host: Environment = Environment()