Files
klangkiste/box/wifi/base.py
T
2026-01-12 15:25:34 +00:00

46 lines
1.0 KiB
Python

"""WiFi backend interface (logical, no OS integration)."""
from __future__ import annotations
from dataclasses import dataclass
from typing import Protocol
@dataclass
class WifiProfile:
ssid: str
password: str
priority: int = 0
class WifiBackend(Protocol):
def scan_available_networks(self) -> list[str]:
raise NotImplementedError
def add_profile(self, ssid: str, password: str, priority: int = 0) -> None:
raise NotImplementedError
def remove_profile(self, ssid: str) -> None:
raise NotImplementedError
def reset(self) -> None:
raise NotImplementedError
def select_best_profile(self) -> WifiProfile | None:
raise NotImplementedError
def connect(self, profile: WifiProfile) -> None:
raise NotImplementedError
@property
def network_status(self) -> str:
raise NotImplementedError
@property
def connected_ssid(self) -> str | None:
raise NotImplementedError
@property
def profiles_count(self) -> int:
raise NotImplementedError