feat(environment): добавлены аннотации типов для класса окружения

- Добавлены аннотации типов для атрибутов класса:
  * TEST: str
  * DEVELOP: str
  * URLS: Dict[str, str]
  * env: str
  * access_token: str
  * token: str

- Добавлены аннотации возвращаемых типов:
  * -> str для get_base_url(), get_request_url(), get_access_token()
  * -> None для set_access_token()
  * -> None для __init__()

- Добавлена аннотация типа для параметра token: str в set_access_token()

- Добавлена аннотация типа для глобальной переменной host: Environment

Изменения улучшают статический анализ кода и документирование.
pull/1/head
Radislav 2025-07-22 08:19:37 +03:00
parent e28d9ef339
commit 1ca9822bac
1 changed files with 20 additions and 55 deletions

View File

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