fix: cleanup naming from previous refactoring in ServiceInfo (#1202) · python-zeroconf/python-zeroconf@b272d75

@@ -21,9 +21,9 @@

2121

"""

22222323

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

28282929

from .._dns import (

@@ -90,7 +90,7 @@ def instance_name_from_service_info(info: "ServiceInfo") -> str:

9090

return 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)

949495959696

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]:

260260261261

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.

265265266266

Addresses are guaranteed to be returned in LIFO (last in, first out)

@@ -273,7 +273,7 @@ def ip_addresses_by_version(

273273274274

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:

366366367367

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

383383384384

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

)

389389390390

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

)

395395396396

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

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:

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

440441441-

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)

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)

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)

451453452454

return False

453455454456

if not self._ipv6_addresses:

455457

self._set_ipv6_addresses_from_cache(zc, now)

456458459+

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)

463466464467

return False

465468466-

if record.key != self.key:

469+

if record_key != self.key:

467470

return False

468471469-

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

472475473-

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

]

509513510514

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