From 5d58cdd98e550b0007436566c290ca64c97a021e Mon Sep 17 00:00:00 2001 From: Michael Arthur Date: Mon, 9 Jun 2025 19:36:17 +1200 Subject: [PATCH] DNSIP: Add literal to querytype (#146367) --- homeassistant/components/dnsip/sensor.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/dnsip/sensor.py b/homeassistant/components/dnsip/sensor.py index 6cdb67dd80dfc1..d093698e26b6f5 100644 --- a/homeassistant/components/dnsip/sensor.py +++ b/homeassistant/components/dnsip/sensor.py @@ -5,6 +5,7 @@ from datetime import timedelta from ipaddress import IPv4Address, IPv6Address import logging +from typing import Literal import aiodns from aiodns.error import DNSError @@ -34,7 +35,7 @@ SCAN_INTERVAL = timedelta(seconds=120) -def sort_ips(ips: list, querytype: str) -> list: +def sort_ips(ips: list, querytype: Literal["A", "AAAA"]) -> list: """Join IPs into a single string.""" if querytype == "AAAA": @@ -89,7 +90,7 @@ def __init__( self.hostname = hostname self.resolver = aiodns.DNSResolver(tcp_port=port, udp_port=port) self.resolver.nameservers = [resolver] - self.querytype = "AAAA" if ipv6 else "A" + self.querytype: Literal["A", "AAAA"] = "AAAA" if ipv6 else "A" self._retries = DEFAULT_RETRIES self._attr_extra_state_attributes = { "resolver": resolver, @@ -106,7 +107,7 @@ def __init__( async def async_update(self) -> None: """Get the current DNS IP address for hostname.""" try: - response = await self.resolver.query(self.hostname, self.querytype) # type: ignore[call-overload] + response = await self.resolver.query(self.hostname, self.querytype) except DNSError as err: _LOGGER.warning("Exception while resolving host: %s", err) response = None