]> git.ipfire.org Git - thirdparty/dnspython.git/commitdiff
add type info
authorBob Halley <halley@dnspython.org>
Fri, 12 Jun 2020 13:54:43 +0000 (06:54 -0700)
committerBob Halley <halley@dnspython.org>
Fri, 12 Jun 2020 13:54:43 +0000 (06:54 -0700)
dns/asyncbackend.pyi [new file with mode: 0644]
dns/asyncquery.pyi [new file with mode: 0644]
dns/asyncresolver.pyi [new file with mode: 0644]

diff --git a/dns/asyncbackend.pyi b/dns/asyncbackend.pyi
new file mode 100644 (file)
index 0000000..1ec9d32
--- /dev/null
@@ -0,0 +1,13 @@
+# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
+
+class Backend:
+    ...
+
+def get_backend(name: str) -> Backend:
+    ...
+def sniff() -> str:
+    ...
+def get_default_backend() -> Backend:
+    ...
+def set_default_backend(name: str) -> Backend:
+    ...
diff --git a/dns/asyncquery.pyi b/dns/asyncquery.pyi
new file mode 100644 (file)
index 0000000..21ef60d
--- /dev/null
@@ -0,0 +1,43 @@
+from typing import Optional, Union, Dict, Generator, Any
+from . import tsig, rdatatype, rdataclass, name, message, asyncbackend
+
+# If the ssl import works, then
+#
+#    error: Name 'ssl' already defined (by an import)
+#
+# is expected and can be ignored.
+try:
+    import ssl
+except ImportError:
+    class ssl:    # type: ignore
+        SSLContext : Dict = {}
+
+async def udp(q : message.Message, where : str,
+              timeout : Optional[float] = None, port=53,
+              source : Optional[str] = None, source_port : Optional[int] = 0,
+              ignore_unexpected : Optional[bool] = False,
+              one_rr_per_rrset : Optional[bool] = False,
+              ignore_trailing : Optional[bool] = False,
+              sock : Optional[asyncbackend.DatagramSocket] = None,
+              backend : Optional[asyncbackend.Backend]) -> message.Message:
+    pass
+
+async def tcp(q : message.Message, where : str, timeout : float = None, port=53,
+        af : Optional[int] = None, source : Optional[str] = None,
+        source_port : Optional[int] = 0,
+        one_rr_per_rrset : Optional[bool] = False,
+        ignore_trailing : Optional[bool] = False,
+        sock : Optional[asyncbackend.StreamSocket] = None,
+        backend : Optional[asyncbackend.Backend]) -> message.Message:
+    pass
+
+async def tls(q : message.Message, where : str,
+              timeout : Optional[float] = None, port=53,
+              source : Optional[str] = None, source_port : Optional[int] = 0,
+              one_rr_per_rrset : Optional[bool] = False,
+              ignore_trailing : Optional[bool] = False,
+              sock : Optional[asyncbackend.StreamSocket] = None,
+              backend : Optional[asyncbackend.Backend],
+              ssl_context: Optional[ssl.SSLContext] = None,
+              server_hostname: Optional[str] = None) -> message.Message:
+    pass
diff --git a/dns/asyncresolver.pyi b/dns/asyncresolver.pyi
new file mode 100644 (file)
index 0000000..92759d2
--- /dev/null
@@ -0,0 +1,26 @@
+from typing import Union, Optional, List, Any, Dict
+from . import exception, rdataclass, name, rdatatype, asyncbackend
+
+async def resolve(qname : str, rdtype : Union[int,str] = 0,
+                  rdclass : Union[int,str] = 0,
+                  tcp=False, source=None, raise_on_no_answer=True,
+                  source_port=0, lifetime : Optional[float]=None,
+                  search : Optional[bool]=None,
+                  backend : Optional[asyncbackend.Backend]=None):
+    ...
+async def resolve_address(self, ipaddr: str,
+                          *args: Any, **kwargs: Optional[Dict]):
+    ...
+
+class Resolver:
+    def __init__(self, filename : Optional[str] = '/etc/resolv.conf',
+                 configure : Optional[bool] = True):
+        self.nameservers : List[str]
+    async def resolve(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,
+                      lifetime : Optional[float]=None,
+                      search : Optional[bool]=None,
+                      backend : Optional[asyncbackend.Backend]=None):
+        ...