feat: speed up answering questions (#1265) · python-zeroconf/python-zeroconf@37bfaf2
@@ -519,6 +519,14 @@ def dns_addresses(
519519self,
520520override_ttl: Optional[int] = None,
521521version: IPVersion = IPVersion.All,
522+ ) -> List[DNSAddress]:
523+"""Return matching DNSAddress from ServiceInfo."""
524+return self._dns_addresses(override_ttl, version)
525+526+def _dns_addresses(
527+self,
528+override_ttl: Optional[int],
529+version: IPVersion,
522530 ) -> List[DNSAddress]:
523531"""Return matching DNSAddress from ServiceInfo."""
524532cacheable = version is IPVersion.All and override_ttl is None
@@ -544,6 +552,10 @@ def dns_addresses(
544552return records
545553546554def dns_pointer(self, override_ttl: Optional[int] = None) -> DNSPointer:
555+"""Return DNSPointer from ServiceInfo."""
556+return self._dns_pointer(override_ttl)
557+558+def _dns_pointer(self, override_ttl: Optional[int]) -> DNSPointer:
547559"""Return DNSPointer from ServiceInfo."""
548560cacheable = override_ttl is None
549561if self._dns_pointer_cache is not None and cacheable:
@@ -561,6 +573,10 @@ def dns_pointer(self, override_ttl: Optional[int] = None) -> DNSPointer:
561573return record
562574563575def dns_service(self, override_ttl: Optional[int] = None) -> DNSService:
576+"""Return DNSService from ServiceInfo."""
577+return self._dns_service(override_ttl)
578+579+def _dns_service(self, override_ttl: Optional[int]) -> DNSService:
564580"""Return DNSService from ServiceInfo."""
565581cacheable = override_ttl is None
566582if self._dns_service_cache is not None and cacheable:
@@ -584,6 +600,10 @@ def dns_service(self, override_ttl: Optional[int] = None) -> DNSService:
584600return record
585601586602def dns_text(self, override_ttl: Optional[int] = None) -> DNSText:
603+"""Return DNSText from ServiceInfo."""
604+return self._dns_text(override_ttl)
605+606+def _dns_text(self, override_ttl: Optional[int]) -> DNSText:
587607"""Return DNSText from ServiceInfo."""
588608cacheable = override_ttl is None
589609if self._dns_text_cache is not None and cacheable:
@@ -601,6 +621,10 @@ def dns_text(self, override_ttl: Optional[int] = None) -> DNSText:
601621return record
602622603623def dns_nsec(self, missing_types: List[int], override_ttl: Optional[int] = None) -> DNSNsec:
624+"""Return DNSNsec from ServiceInfo."""
625+return self._dns_nsec(missing_types, override_ttl)
626+627+def _dns_nsec(self, missing_types: List[int], override_ttl: Optional[int]) -> DNSNsec:
604628"""Return DNSNsec from ServiceInfo."""
605629return DNSNsec(
606630self._name,
@@ -613,18 +637,22 @@ def dns_nsec(self, missing_types: List[int], override_ttl: Optional[int] = None)
613637 )
614638615639def get_address_and_nsec_records(self, override_ttl: Optional[int] = None) -> Set[DNSRecord]:
640+"""Build a set of address records and NSEC records for non-present record types."""
641+return self._get_address_and_nsec_records(override_ttl)
642+643+def _get_address_and_nsec_records(self, override_ttl: Optional[int]) -> Set[DNSRecord]:
616644"""Build a set of address records and NSEC records for non-present record types."""
617645cacheable = override_ttl is None
618646if self._get_address_and_nsec_records_cache is not None and cacheable:
619647return self._get_address_and_nsec_records_cache
620648missing_types: Set[int] = _ADDRESS_RECORD_TYPES.copy()
621649records: Set[DNSRecord] = set()
622-for dns_address in self.dns_addresses(override_ttl, IPVersion.All):
650+for dns_address in self._dns_addresses(override_ttl, IPVersion.All):
623651missing_types.discard(dns_address.type)
624652records.add(dns_address)
625653if missing_types:
626654assert self.server is not None, "Service server must be set for NSEC record."
627-records.add(self.dns_nsec(list(missing_types), override_ttl))
655+records.add(self._dns_nsec(list(missing_types), override_ttl))
628656if cacheable:
629657self._get_address_and_nsec_records_cache = records
630658return records