diff options
| author | Janus <ysangkok@gmail.com> | 2018-07-23 16:11:00 +0200 |
|---|---|---|
| committer | Janus <ysangkok@gmail.com> | 2018-07-31 20:10:52 +0200 |
| commit | 5c5de7bb1ad26d6d6bb82ed2deb64748b46ac599 (patch) | |
| tree | e4510f90a598e484e57314dc04217259ef34a690 /examples | |
| parent | 2e6e81852b63eb64b68a08a27cc6e440819b6b58 (diff) | |
| download | dnspython-5c5de7bb1ad26d6d6bb82ed2deb64748b46ac599.tar.gz | |
Initial type signatures
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/receive_notify.py | 7 | ||||
| -rwxr-xr-x | examples/reverse.py | 4 | ||||
| -rwxr-xr-x | examples/zonediff.py | 47 |
3 files changed, 41 insertions, 17 deletions
diff --git a/examples/receive_notify.py b/examples/receive_notify.py index 93c428c..178d73c 100644 --- a/examples/receive_notify.py +++ b/examples/receive_notify.py @@ -11,6 +11,9 @@ import dns.flags import dns.message import dns.rdataclass import dns.rdatatype +import dns.name + +from typing import cast address = '127.0.0.1' port = 53535 @@ -26,7 +29,7 @@ while True: # Do something with the SOA RR here print('The serial number for', soa.name, 'is', soa[0].serial) - response = dns.message.make_response(notify) + response = dns.message.make_response(notify) # type: dns.message.Message response.flags |= dns.flags.AA - wire = response.to_wire(response) + wire = response.to_wire(cast(dns.name.Name, response)) s.sendto(wire, address) diff --git a/examples/reverse.py b/examples/reverse.py index b84017f..038a020 100755 --- a/examples/reverse.py +++ b/examples/reverse.py @@ -22,13 +22,15 @@ import dns.zone import dns.ipv4 import os.path import sys +from typing import Dict, List # pylint: disable=unused-import -reverse_map = {} +reverse_map = {} # type: Dict[str, List[str]] for filename in sys.argv[1:]: zone = dns.zone.from_file(filename, os.path.basename(filename), relativize=False) for (name, ttl, rdata) in zone.iterate_rdatas('A'): + print(type(rdata)) try: reverse_map[rdata.address].append(name.to_text()) except KeyError: diff --git a/examples/zonediff.py b/examples/zonediff.py index b05d7a4..bfe4ee3 100755 --- a/examples/zonediff.py +++ b/examples/zonediff.py @@ -22,16 +22,22 @@ """See diff_zones.__doc__ for more information""" from __future__ import print_function +from typing import cast, Union, Any # pylint: disable=unused-import __all__ = ['diff_zones', 'format_changes_plain', 'format_changes_html'] try: import dns.zone + import dns.node except ImportError: raise SystemExit("Please install dnspython") -def diff_zones(zone1, zone2, ignore_ttl=False, ignore_soa=False): +def diff_zones(zone1, # type: dns.zone.Zone + zone2, # type: dns.zone.Zone + ignore_ttl=False, + ignore_soa=False + ): # type: (...) -> list """diff_zones(zone1, zone2, ignore_ttl=False, ignore_soa=False) -> changes Compares two dns.zone.Zone objects and returns a list of all changes in the format (name, oldnode, newnode). @@ -47,22 +53,26 @@ def diff_zones(zone1, zone2, ignore_ttl=False, ignore_soa=False): changes = [] for name in zone1: - name = str(name) - n1 = zone1.get_node(name) - n2 = zone2.get_node(name) + namestr = str(name) + n1 = cast(dns.node.Node, zone1.get_node(namestr)) + n2 = cast(dns.node.Node, zone2.get_node(namestr)) if not n2: changes.append((str(name), n1, n2)) elif _nodes_differ(n1, n2, ignore_ttl, ignore_soa): changes.append((str(name), n1, n2)) for name in zone2: - n1 = zone1.get_node(name) - if not n1: - n2 = zone2.get_node(name) - changes.append((str(name), n1, n2)) + n3 = cast(dns.node.Node, zone1.get_node(name)) + if not n3: + n4 = cast(dns.node.Node, zone2.get_node(name)) + changes.append((str(name), n3, n4)) return changes -def _nodes_differ(n1, n2, ignore_ttl, ignore_soa): +def _nodes_differ(n1, # type: dns.node.Node + n2, # type: dns.node.Node + ignore_ttl, # type: bool + ignore_soa # type: bool + ): # type: (...) -> bool if ignore_soa or not ignore_ttl: # Compare datasets directly for r in n1.rdatasets: @@ -78,10 +88,15 @@ def _nodes_differ(n1, n2, ignore_ttl, ignore_soa): continue if r not in n1.rdatasets: return True + assert False else: return n1 != n2 -def format_changes_plain(oldf, newf, changes, ignore_ttl=False): +def format_changes_plain(oldf, # type: str + newf, # type: str + changes, # type: list + ignore_ttl=False + ): # type: (...) -> str """format_changes(oldfile, newfile, changes, ignore_ttl=False) -> str Given 2 filenames and a list of changes from diff_zones, produce diff-like output. If ignore_ttl is True, TTL-only changes are not displayed""" @@ -110,7 +125,11 @@ def format_changes_plain(oldf, newf, changes, ignore_ttl=False): ret += "+ %s\n" % str(r).replace('\n', '\n+ ') return ret -def format_changes_html(oldf, newf, changes, ignore_ttl=False): +def format_changes_html(oldf, # type: str + newf, # type: str + changes, # type: list + ignore_ttl=False + ): # type: (...) -> str """format_changes(oldfile, newfile, changes, ignore_ttl=False) -> str Given 2 filenames and a list of changes from diff_zones, produce nice html output. If ignore_ttl is True, TTL-only changes are not displayed""" @@ -161,7 +180,7 @@ def format_changes_html(oldf, newf, changes, ignore_ttl=False): # Make this module usable as a script too. -def main(): +def main(): # type: () -> None import argparse import subprocess import sys @@ -190,7 +209,7 @@ The differences shown will be logical differences, not textual differences. opts, args = p.parse_args() opts.use_vc = opts.use_git or opts.use_bzr or opts.use_rcs - def _open(what, err): + def _open(what, err): # type: (Union[list,str], str) -> Any if isinstance(what, list): # Must be a list, open subprocess try: @@ -265,7 +284,7 @@ The differences shown will be logical differences, not textual differences. try: oldz = dns.zone.from_file(old, origin='.', check_origin=False) except dns.exception.DNSException: - sys.stderr.write("Incorrect zonefile: %s\n", old) + sys.stderr.write("Incorrect zonefile: %s\n" % old) if opts.tracebacks: traceback.print_exc() try: |
