fix: cleanup naming from previous refactoring in ServiceInfo (#1202) · python-zeroconf/python-zeroconf@b272d75
@@ -21,9 +21,9 @@
2121"""
22222323import asyncio
24-import ipaddress
2524import random
2625from functools import lru_cache
26+from ipaddress import IPv4Address, IPv6Address, _BaseAddress, ip_address
2727from typing import TYPE_CHECKING, Dict, List, Optional, Set, Union, cast
28282929from .._dns import (
@@ -90,7 +90,7 @@ def instance_name_from_service_info(info: "ServiceInfo") -> str:
9090return info.name[: -len(service_name) - 1]
9191929293-_cached_ip_addresses = lru_cache(maxsize=256)(ipaddress.ip_address)
93+_cached_ip_addresses = lru_cache(maxsize=256)(ip_address)
949495959696class ServiceInfo(RecordUpdateListener):
@@ -158,8 +158,8 @@ def __init__(
158158self.type = type_
159159self._name = name
160160self.key = name.lower()
161-self._ipv4_addresses: List[ipaddress.IPv4Address] = []
162-self._ipv6_addresses: List[ipaddress.IPv6Address] = []
161+self._ipv4_addresses: List[IPv4Address] = []
162+self._ipv6_addresses: List[IPv6Address] = []
163163if addresses is not None:
164164self.addresses = addresses
165165elif parsed_addresses is not None:
@@ -260,7 +260,7 @@ def addresses_by_version(self, version: IPVersion) -> List[bytes]:
260260261261def ip_addresses_by_version(
262262self, version: IPVersion
263- ) -> Union[List[ipaddress.IPv4Address], List[ipaddress.IPv6Address], List[ipaddress._BaseAddress]]:
263+ ) -> Union[List[IPv4Address], List[IPv6Address], List[_BaseAddress]]:
264264"""List ip_address objects matching IP version.
265265266266 Addresses are guaranteed to be returned in LIFO (last in, first out)
@@ -273,7 +273,7 @@ def ip_addresses_by_version(
273273274274def _ip_addresses_by_version_value(
275275self, version_value: int
276- ) -> Union[List[ipaddress.IPv4Address], List[ipaddress.IPv6Address], List[ipaddress._BaseAddress]]:
276+ ) -> Union[List[IPv4Address], List[IPv6Address], List[_BaseAddress]]:
277277"""Backend for addresses_by_version that uses the raw value."""
278278if version_value == _IPVersion_All_value:
279279return [*self._ipv4_addresses, *self._ipv6_addresses]
@@ -366,31 +366,31 @@ def get_name(self) -> str:
366366367367def _get_ip_addresses_from_cache_lifo(
368368self, zc: 'Zeroconf', now: float, type: int
369- ) -> List[Union[ipaddress.IPv4Address, ipaddress.IPv6Address]]:
369+ ) -> List[Union[IPv4Address, IPv6Address]]:
370370"""Set IPv6 addresses from the cache."""
371-address_list: List[Union[ipaddress.IPv4Address, ipaddress.IPv6Address]] = []
371+address_list: List[Union[IPv4Address, IPv6Address]] = []
372372for record in self._get_address_records_from_cache_by_type(zc, type):
373373if record.is_expired(now):
374374continue
375375try:
376-ip_address = _cached_ip_addresses(record.address)
376+ip_addr = _cached_ip_addresses(record.address)
377377except ValueError:
378378continue
379379else:
380-address_list.append(ip_address)
380+address_list.append(ip_addr)
381381address_list.reverse() # Reverse to get LIFO order
382382return address_list
383383384384def _set_ipv6_addresses_from_cache(self, zc: 'Zeroconf', now: float) -> None:
385385"""Set IPv6 addresses from the cache."""
386386self._ipv6_addresses = cast(
387-"List[ipaddress.IPv6Address]", self._get_ip_addresses_from_cache_lifo(zc, now, _TYPE_AAAA)
387+"List[IPv6Address]", self._get_ip_addresses_from_cache_lifo(zc, now, _TYPE_AAAA)
388388 )
389389390390def _set_ipv4_addresses_from_cache(self, zc: 'Zeroconf', now: float) -> None:
391391"""Set IPv4 addresses from the cache."""
392392self._ipv4_addresses = cast(
393-"List[ipaddress.IPv4Address]", self._get_ip_addresses_from_cache_lifo(zc, now, _TYPE_A)
393+"List[IPv4Address]", self._get_ip_addresses_from_cache_lifo(zc, now, _TYPE_A)
394394 )
395395396396def update_record(self, zc: 'Zeroconf', now: float, record: Optional[DNSRecord]) -> None:
@@ -431,46 +431,49 @@ def _process_record_threadsafe(self, zc: 'Zeroconf', record: DNSRecord, now: flo
431431if record.is_expired(now):
432432return False
433433434-if record.key == self.server_key and isinstance(record, DNSAddress):
434+record_key = record.key
435+if record_key == self.server_key and type(record) is DNSAddress:
435436try:
436437ip_addr = _cached_ip_addresses(record.address)
437438except ValueError as ex:
438439log.warning("Encountered invalid address while processing %s: %s", record, ex)
439440return False
440441441-if ip_addr.version == 4:
442-if not self._ipv4_addresses:
442+if type(ip_addr) is IPv4Address:
443+if self._ipv4_addresses:
443444self._set_ipv4_addresses_from_cache(zc, now)
444445445-if ip_addr not in self._ipv4_addresses:
446-self._ipv4_addresses.insert(0, ip_addr)
446+ipv4_addresses = self._ipv4_addresses
447+if ip_addr not in ipv4_addresses:
448+ipv4_addresses.insert(0, ip_addr)
447449return True
448-elif ip_addr != self._ipv4_addresses[0]:
449-self._ipv4_addresses.remove(ip_addr)
450-self._ipv4_addresses.insert(0, ip_addr)
450+elif ip_addr != ipv4_addresses[0]:
451+ipv4_addresses.remove(ip_addr)
452+ipv4_addresses.insert(0, ip_addr)
451453452454return False
453455454456if not self._ipv6_addresses:
455457self._set_ipv6_addresses_from_cache(zc, now)
456458459+ipv6_addresses = self._ipv6_addresses
457460if ip_addr not in self._ipv6_addresses:
458-self._ipv6_addresses.insert(0, ip_addr)
461+ipv6_addresses.insert(0, ip_addr)
459462return True
460463elif ip_addr != self._ipv6_addresses[0]:
461-self._ipv6_addresses.remove(ip_addr)
462-self._ipv6_addresses.insert(0, ip_addr)
464+ipv6_addresses.remove(ip_addr)
465+ipv6_addresses.insert(0, ip_addr)
463466464467return False
465468466-if record.key != self.key:
469+if record_key != self.key:
467470return False
468471469-if record.type == _TYPE_TXT and isinstance(record, DNSText):
472+if record.type == _TYPE_TXT and type(record) is DNSText:
470473self._set_text(record.text)
471474return True
472475473-if record.type == _TYPE_SRV and isinstance(record, DNSService):
476+if record.type == _TYPE_SRV and type(record) is DNSService:
474477old_server_key = self.server_key
475478self.name = record.name
476479self.server = record.server
@@ -495,16 +498,17 @@ def dns_addresses(
495498name = self.server or self.name
496499ttl = override_ttl if override_ttl is not None else self.host_ttl
497500class_ = _CLASS_IN | _CLASS_UNIQUE
501+version_value = version.value
498502return [
499503DNSAddress(
500504name,
501-_TYPE_AAAA if address.version == 6 else _TYPE_A,
505+_TYPE_AAAA if type(ip_addr) is IPv6Address else _TYPE_A,
502506class_,
503507ttl,
504-address.packed,
508+ip_addr.packed,
505509created=created,
506510 )
507-for address in self._ip_addresses_by_version_value(version.value)
511+for ip_addr in self._ip_addresses_by_version_value(version_value)
508512 ]
509513510514def dns_pointer(self, override_ttl: Optional[int] = None, created: Optional[float] = None) -> DNSPointer: