Рефакторинг. docstring
This commit is contained in:
parent
060f4de175
commit
37f9e3abfb
14 changed files with 1234 additions and 243 deletions
|
|
@ -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-интерфейс не доступен"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue