]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
Use `Sequence` instead of `List` for nameservers, as List is invariant (#961)
authorav223119 <40322857+av223119@users.noreply.github.com>
Wed, 19 Jul 2023 13:44:09 +0000 (15:44 +0200)
committerGitHub <noreply@github.com>
Wed, 19 Jul 2023 13:44:09 +0000 (06:44 -0700)
without this, resolver.nameservers = string.split() produces mypy error, see
https://mypy.readthedocs.io/en/stable/common_issues.html#invariance-vs-covariance

dns/resolver.py

index a331e409bb31e5be87138977039c68667b23404e..bbac49a5055912db9a22b51022d356e282908d24 100644 (file)
@@ -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