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