Skip to content

Commit b272d75

Browse files
authored
fix: cleanup naming from previous refactoring in ServiceInfo (#1202)
1 parent fed3dec commit b272d75

2 files changed

Lines changed: 33 additions & 31 deletions

File tree

src/zeroconf/_services/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ def update_service(self, zc: 'Zeroconf', type_: str, name: str) -> None:
4646

4747

4848
class Signal:
49-
5049
__slots__ = ('_handlers',)
5150

5251
def __init__(self) -> None:
@@ -62,7 +61,6 @@ def registration_interface(self) -> 'SignalRegistrationInterface':
6261

6362

6463
class SignalRegistrationInterface:
65-
6664
__slots__ = ('_handlers',)
6765

6866
def __init__(self, handlers: List[Callable[..., None]]) -> None:

src/zeroconf/_services/info.py

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
"""
2222

2323
import asyncio
24-
import ipaddress
2524
import random
2625
from functools import lru_cache
26+
from ipaddress import IPv4Address, IPv6Address, _BaseAddress, ip_address
2727
from typing import TYPE_CHECKING, Dict, List, Optional, Set, Union, cast
2828

2929
from .._dns import (
@@ -90,7 +90,7 @@ def instance_name_from_service_info(info: "ServiceInfo") -> str:
9090
return info.name[: -len(service_name) - 1]
9191

9292

93-
_cached_ip_addresses = lru_cache(maxsize=256)(ipaddress.ip_address)
93+
_cached_ip_addresses = lru_cache(maxsize=256)(ip_address)
9494

9595

9696
class ServiceInfo(RecordUpdateListener):
@@ -158,8 +158,8 @@ def __init__(
158158
self.type = type_
159159
self._name = name
160160
self.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] = []
163163
if addresses is not None:
164164
self.addresses = addresses
165165
elif parsed_addresses is not None:
@@ -260,7 +260,7 @@ def addresses_by_version(self, version: IPVersion) -> List[bytes]:
260260

261261
def ip_addresses_by_version(
262262
self, 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.
265265
266266
Addresses are guaranteed to be returned in LIFO (last in, first out)
@@ -273,7 +273,7 @@ def ip_addresses_by_version(
273273

274274
def _ip_addresses_by_version_value(
275275
self, 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."""
278278
if version_value == _IPVersion_All_value:
279279
return [*self._ipv4_addresses, *self._ipv6_addresses]
@@ -366,31 +366,31 @@ def get_name(self) -> str:
366366

367367
def _get_ip_addresses_from_cache_lifo(
368368
self, 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]] = []
372372
for record in self._get_address_records_from_cache_by_type(zc, type):
373373
if record.is_expired(now):
374374
continue
375375
try:
376-
ip_address = _cached_ip_addresses(record.address)
376+
ip_addr = _cached_ip_addresses(record.address)
377377
except ValueError:
378378
continue
379379
else:
380-
address_list.append(ip_address)
380+
address_list.append(ip_addr)
381381
address_list.reverse() # Reverse to get LIFO order
382382
return address_list
383383

384384
def _set_ipv6_addresses_from_cache(self, zc: 'Zeroconf', now: float) -> None:
385385
"""Set IPv6 addresses from the cache."""
386386
self._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
)
389389

390390
def _set_ipv4_addresses_from_cache(self, zc: 'Zeroconf', now: float) -> None:
391391
"""Set IPv4 addresses from the cache."""
392392
self._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
)
395395

396396
def 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
431431
if record.is_expired(now):
432432
return False
433433

434-
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:
435436
try:
436437
ip_addr = _cached_ip_addresses(record.address)
437438
except ValueError as ex:
438439
log.warning("Encountered invalid address while processing %s: %s", record, ex)
439440
return False
440441

441-
if ip_addr.version == 4:
442-
if not self._ipv4_addresses:
442+
if type(ip_addr) is IPv4Address:
443+
if self._ipv4_addresses:
443444
self._set_ipv4_addresses_from_cache(zc, now)
444445

445-
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)
447449
return 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)
451453

452454
return False
453455

454456
if not self._ipv6_addresses:
455457
self._set_ipv6_addresses_from_cache(zc, now)
456458

459+
ipv6_addresses = self._ipv6_addresses
457460
if ip_addr not in self._ipv6_addresses:
458-
self._ipv6_addresses.insert(0, ip_addr)
461+
ipv6_addresses.insert(0, ip_addr)
459462
return True
460463
elif 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)
463466

464467
return False
465468

466-
if record.key != self.key:
469+
if record_key != self.key:
467470
return False
468471

469-
if record.type == _TYPE_TXT and isinstance(record, DNSText):
472+
if record.type == _TYPE_TXT and type(record) is DNSText:
470473
self._set_text(record.text)
471474
return True
472475

473-
if record.type == _TYPE_SRV and isinstance(record, DNSService):
476+
if record.type == _TYPE_SRV and type(record) is DNSService:
474477
old_server_key = self.server_key
475478
self.name = record.name
476479
self.server = record.server
@@ -495,16 +498,17 @@ def dns_addresses(
495498
name = self.server or self.name
496499
ttl = override_ttl if override_ttl is not None else self.host_ttl
497500
class_ = _CLASS_IN | _CLASS_UNIQUE
501+
version_value = version.value
498502
return [
499503
DNSAddress(
500504
name,
501-
_TYPE_AAAA if address.version == 6 else _TYPE_A,
505+
_TYPE_AAAA if type(ip_addr) is IPv6Address else _TYPE_A,
502506
class_,
503507
ttl,
504-
address.packed,
508+
ip_addr.packed,
505509
created=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
]
509513

510514
def dns_pointer(self, override_ttl: Optional[int] = None, created: Optional[float] = None) -> DNSPointer:

0 commit comments

Comments
 (0)