Use slots for discovery dataclasses (#90751)

This commit is contained in:
J. Nick Koston 2023-04-04 00:44:59 -10:00 committed by GitHub
parent bfea1367a7
commit 0cc9b2e803
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 11 additions and 33 deletions

View File

@ -84,7 +84,7 @@ class BleBoxConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
) -> FlowResult:
"""Handle zeroconf discovery."""
hass = self.hass
ipaddress = host_port(discovery_info.__dict__)
ipaddress = (discovery_info.host, discovery_info.port)
self.device_config["host"] = discovery_info.host
self.device_config["port"] = discovery_info.port

View File

@ -77,7 +77,7 @@ SCAN_INTERVAL = timedelta(minutes=60)
_LOGGER = logging.getLogger(__name__)
@dataclass
@dataclass(slots=True)
class DhcpServiceInfo(BaseServiceInfo):
"""Prepared info from dhcp entries."""

View File

@ -22,7 +22,7 @@ from .handler import HassIO, HassioAPIError
_LOGGER = logging.getLogger(__name__)
@dataclass
@dataclass(slots=True)
class HassioServiceInfo(BaseServiceInfo):
"""Prepared info from hassio entries."""

View File

@ -106,42 +106,20 @@ PRIMARY_MATCH_KEYS = [
_LOGGER = logging.getLogger(__name__)
@dataclass
class _HaServiceDescription:
"""Keys added by HA."""
x_homeassistant_matching_domains: set[str] = field(default_factory=set)
@dataclass
class _SsdpServiceDescription:
"""SSDP info with optional keys."""
@dataclass(slots=True)
class SsdpServiceInfo(BaseServiceInfo):
"""Prepared info from ssdp/upnp entries."""
ssdp_usn: str
ssdp_st: str
upnp: Mapping[str, Any]
ssdp_location: str | None = None
ssdp_nt: str | None = None
ssdp_udn: str | None = None
ssdp_ext: str | None = None
ssdp_server: str | None = None
ssdp_headers: Mapping[str, Any] = field(default_factory=dict)
@dataclass
class _UpnpServiceDescription:
"""UPnP info."""
upnp: Mapping[str, Any]
@dataclass
class SsdpServiceInfo(
_HaServiceDescription,
_SsdpServiceDescription,
_UpnpServiceDescription,
BaseServiceInfo,
):
"""Prepared info from ssdp/upnp entries."""
x_homeassistant_matching_domains: set[str] = field(default_factory=set)
SsdpChange = Enum("SsdpChange", "ALIVE BYEBYE UPDATE")

View File

@ -101,7 +101,7 @@ def async_is_plugged_in(hass: HomeAssistant, matcher: USBCallbackMatcher) -> boo
)
@dataclasses.dataclass
@dataclasses.dataclass(slots=True)
class UsbServiceInfo(BaseServiceInfo):
"""Prepared info from usb entries."""

View File

@ -97,7 +97,7 @@ CONFIG_SCHEMA = vol.Schema(
)
@dataclass
@dataclass(slots=True)
class ZeroconfServiceInfo(BaseServiceInfo):
"""Prepared info from mDNS entries."""

View File

@ -48,7 +48,7 @@ RESULT_TYPE_MENU = "menu"
EVENT_DATA_ENTRY_FLOW_PROGRESSED = "data_entry_flow_progressed"
@dataclass
@dataclass(slots=True)
class BaseServiceInfo:
"""Base class for discovery ServiceInfo."""