From: av223119 <40322857+av223119@users.noreply.github.com> Date: Wed, 19 Jul 2023 13:44:09 +0000 (+0200) Subject: Use `Sequence` instead of `List` for nameservers, as List is invariant (#961) X-Git-Tag: v2.4.1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7431295d59b795583876364bf8ad6893d3685693;p=thirdparty%2Fdnspython.git Use `Sequence` instead of `List` for nameservers, as List is invariant (#961) without this, resolver.nameservers = string.split() produces mypy error, see https://mypy.readthedocs.io/en/stable/common_issues.html#invariance-vs-covariance (cherry picked from commit 7c78b943529d2004b2b54700363d2cb64d402924) --- diff --git a/dns/resolver.py b/dns/resolver.py index a331e409..bbac49a5 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -24,7 +24,7 @@ import sys import threading import time import warnings -from typing import Any, Dict, Iterator, List, Optional, Tuple, Union +from typing import Any, Dict, Iterator, List, Optional, Sequence, Tuple, Union from urllib.parse import urlparse import dns._ddr @@ -920,7 +920,7 @@ class BaseResolver: retry_servfail: bool rotate: bool ndots: Optional[int] - _nameservers: List[Union[str, dns.nameserver.Nameserver]] + _nameservers: Sequence[Union[str, dns.nameserver.Nameserver]] def __init__( self, filename: str = "/etc/resolv.conf", configure: bool = True @@ -1176,7 +1176,7 @@ class BaseResolver: @classmethod def _enrich_nameservers( cls, - nameservers: List[Union[str, dns.nameserver.Nameserver]], + nameservers: Sequence[Union[str, dns.nameserver.Nameserver]], nameserver_ports: Dict[str, int], default_port: int, ) -> List[dns.nameserver.Nameserver]: @@ -1214,12 +1214,12 @@ class BaseResolver: @property def nameservers( self, - ) -> List[Union[str, dns.nameserver.Nameserver]]: + ) -> Sequence[Union[str, dns.nameserver.Nameserver]]: return self._nameservers @nameservers.setter def nameservers( - self, nameservers: List[Union[str, dns.nameserver.Nameserver]] + self, nameservers: Sequence[Union[str, dns.nameserver.Nameserver]] ) -> None: """ *nameservers*, a ``list`` of nameservers, where a nameserver is either