diff options
| author | kimbo <kimballleavitt@gmail.com> | 2019-12-26 14:54:31 -0700 |
|---|---|---|
| committer | kimbo <kimballleavitt@gmail.com> | 2019-12-26 14:54:31 -0700 |
| commit | bbf0cfd239ffa6deeb67a4787bd292e9a972af74 (patch) | |
| tree | ecad2f13e4f6f570af3c36a5a22cfb0c61e8ce7d /dns | |
| parent | a3193c831f97854e82db28492333d1aa269b1a12 (diff) | |
| download | dnspython-bbf0cfd239ffa6deeb67a4787bd292e9a972af74.tar.gz | |
make sure Resolver.nameservers is a list or str
validate if assignment of Resolver.nameservers is a list, a str (in
which case it will be converted to a list), or None
Diffstat (limited to 'dns')
| -rw-r--r-- | dns/resolver.py | 21 | ||||
| -rw-r--r-- | dns/resolver.pyi | 2 |
2 files changed, 22 insertions, 1 deletions
diff --git a/dns/resolver.py b/dns/resolver.py index c49598f..2ed0ebc 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -1079,6 +1079,27 @@ class Resolver(object): self.flags = flags + @property + def nameservers(self): + return self._nameservers + + @nameservers.setter + def nameservers(self, nameservers): + """ + :param nameservers: can be a ``str``, ``list``, or None. + If it's a ``str``, it will converted to a list. + :raise ValueError: if `nameservers` is anything other than \ + ``str``, ``list``, or None. + """ + if isinstance(nameservers, str): + self._nameservers = [nameservers] + elif isinstance(nameservers, list): + self._nameservers = nameservers + elif nameservers is None: + self._nameservers = None + else: + raise ValueError('nameservers must be either a str, a list, or None' + ' (not a {})'.format(type(nameservers))) #: The default resolver. default_resolver = None diff --git a/dns/resolver.pyi b/dns/resolver.pyi index 06742fe..c68d04a 100644 --- a/dns/resolver.pyi +++ b/dns/resolver.pyi @@ -33,7 +33,7 @@ def zone_for_name(name, rdclass : int = rdataclass.IN, tcp=False, resolver : Opt ... class Resolver: - def __init__(self, configure): + def __init__(self, filename : Optional[str] = '/etc/resolv.conf', configure : Optional[bool] = True): self.nameservers : List[str] def query(self, qname : str, rdtype : Union[int,str] = rdatatype.A, rdclass : Union[int,str] = rdataclass.IN, tcp : bool = False, source : Optional[str] = None, raise_on_no_answer=True, source_port : int = 0): |
