Рефакторинг. docstring

This commit is contained in:
parent 060f4de175
commit 37f9e3abfb
14 changed files with 1234 additions and 243 deletions

View file

@ -6,11 +6,28 @@ logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(name)s - %(level
logger = logging.getLogger(__name__)
class WifiConnectionService:
"""Сервис для управления подключением к Wi-Fi сетям с использованием nmcli.
Предоставляет методы для подключения, отключения и проверки статуса Wi-Fi соединений.
"""
def __init__(self):
"""Инициализирует сервис Wi-Fi.
Автоматически определяет доступный Wi-Fi-интерфейс и сохраняет его имя.
"""
self.interface = self._get_wifi_interface()
def _get_wifi_interface(self) -> str:
"""Автоматически определяет Wi-Fi-интерфейс."""
"""Автоматически определяет Wi-Fi-интерфейс.
Returns:
str: Название Wi-Fi-интерфейса (например, "wlan0") или пустая строка,
если интерфейс не найден или Wi-Fi отключён.
Raises:
Exception: Если произошла ошибка при выполнении команд nmcli.
"""
try:
result = subprocess.run(["nmcli", "radio", "wifi"], capture_output=True, text=True)
if "enabled" in result.stdout.lower():
@ -29,7 +46,21 @@ class WifiConnectionService:
return ""
def connect(self, ssid: str, password: str) -> Tuple[bool, Optional[str]]:
"""Подключается к Wi-Fi сети по SSID и паролю."""
"""Подключается к Wi-Fi сети по SSID и паролю.
Args:
ssid (str): Идентификатор сети Wi-Fi.
password (str): Пароль для подключения.
Returns:
Tuple[bool, Optional[str]]: Кортеж (успех, сообщение об ошибке).
- Успех: (True, None).
- Ошибка: (False, сообщение об ошибке).
Raises:
subprocess.CalledProcessError: Если команда nmcli завершилась с ошибкой.
Exception: Если произошла неизвестная ошибка при выполнении.
"""
try:
if not self.interface:
return False, "Wi-Fi-интерфейс не доступен"
@ -63,7 +94,20 @@ class WifiConnectionService:
return False, f"Ошибка подключения к {ssid}: Неизвестная ошибка - {str(e)}"
def disconnect(self, ssid: str) -> Tuple[bool, Optional[str]]:
"""Отключается от Wi-Fi сети по указанному SSID."""
"""Отключается от Wi-Fi сети по указанному SSID.
Args:
ssid (str): Идентификатор сети Wi-Fi для отключения.
Returns:
Tuple[bool, Optional[str]]: Кортеж (успех, сообщение об ошибке).
- Успех: (True, None или сообщение, если подключение не найдено).
- Ошибка: (False, сообщение об ошибке).
Raises:
subprocess.CalledProcessError: Если команда nmcli завершилась с ошибкой.
Exception: Если произошла неизвестная ошибка при выполнении.
"""
try:
if not self.interface:
return False, "Wi-Fi-интерфейс не доступен"
@ -91,7 +135,16 @@ class WifiConnectionService:
return False, f"Ошибка отключения от {ssid}: {str(e)}"
def get_status(self) -> Tuple[bool, Optional[str]]:
"""Проверяет статус текущего подключения к Wi-Fi."""
"""Проверяет статус текущего подключения к Wi-Fi.
Returns:
Tuple[bool, Optional[str]]: Кортеж (успех, SSID или сообщение об ошибке).
- Успех: (True, SSID текущей сети).
- Ошибка или отсутствие подключения: (False, сообщение об ошибке).
Raises:
Exception: Если произошла ошибка при выполнении команды nmcli.
"""
try:
if not self.interface:
return False, "Wi-Fi-интерфейс не доступен"