"""asyncio library query support"""
-import socket
import asyncio
+import socket
import sys
import dns._asyncbackend
import dns.exception
-
_is_win32 = sys.platform == "win32"
try:
import anyio
- import httpx
-
import httpcore
- import httpcore.backends.base
import httpcore.backends.asyncio
+ import httpcore.backends.base
+ import httpx
- from dns.query import _compute_times, _remaining, _expiration_for_this_attempt
+ from dns.query import _compute_times, _expiration_for_this_attempt, _remaining
class _NetworkBackend(httpcore.backends.base.AsyncNetworkBackend):
def __init__(self, resolver, local_port, bootstrap_address, family):
#
# Support for Discovery of Designated Resolvers
-from urllib.parse import urlparse
import socket
import time
+from urllib.parse import urlparse
import dns.asyncbackend
import dns.inet
import dns.query
import dns.rdtypes.svcbbase
-
# The special name of the local resolver when using DDR
_local_resolver_name = dns.name.from_text("_dns.resolver.arpa")
import contextvars
import inspect
-
_in__init__ = contextvars.ContextVar("_immutable_in__init__", default=False)
"""trio async I/O library query support"""
import socket
+
import trio
import trio.socket # type: ignore
try:
- import httpx
-
import httpcore
import httpcore.backends.base
import httpcore.backends.trio
+ import httpx
- from dns.query import _compute_times, _remaining, _expiration_for_this_attempt
+ from dns.query import _compute_times, _expiration_for_this_attempt, _remaining
class _NetworkBackend(httpcore.backends.base.AsyncNetworkBackend):
def __init__(self, resolver, local_port, bootstrap_address, family):
import dns.exception
# pylint: disable=unused-import
-
-from dns._asyncbackend import (
- Socket,
+from dns._asyncbackend import ( # noqa: F401 lgtm[py/unused-import]
+ Backend,
DatagramSocket,
+ Socket,
StreamSocket,
- Backend,
-) # noqa: F401 lgtm[py/unused-import]
+)
# pylint: enable=unused-import
"""Talk to a DNS server."""
-from typing import Any, Dict, Optional, Tuple, Union
-
import base64
import contextlib
import socket
import struct
import time
+from typing import Any, Dict, Optional, Tuple, Union
import dns.asyncbackend
import dns.exception
import dns.inet
-import dns.name
import dns.message
+import dns.name
import dns.quic
import dns.rcode
import dns.rdataclass
import dns.rdatatype
import dns.transaction
-
from dns._asyncbackend import NullContext
from dns.query import (
- _compute_times,
- _matches_destination,
BadResponse,
- ssl,
- UDPMode,
- have_doh,
- _have_http2,
NoDOH,
NoDOQ,
+ UDPMode,
+ _compute_times,
+ _have_http2,
+ _matches_destination,
+ have_doh,
+ ssl,
)
if have_doh:
"""Asynchronous DNS stub resolver."""
-from typing import Any, Dict, List, Optional, Union
-
import socket
import time
+from typing import Any, Dict, List, Optional, Union
+import dns._ddr
import dns.asyncbackend
import dns.asyncquery
-import dns._ddr
import dns.exception
import dns.name
import dns.query
import dns.resolver # lgtm[py/import-and-import-from]
# import some resolver symbols for brevity
-from dns.resolver import NXDOMAIN, NoAnswer, NotAbsolute, NoRootSOA
-
+from dns.resolver import NXDOMAIN, NoAnswer, NoRootSOA, NotAbsolute
# for indentation purposes below
_udp = dns.asyncquery.udp
"""Common DNSSEC-related functions and constants."""
-from typing import cast, Callable, Dict, List, Optional, Set, Tuple, Union
-
+import base64
import contextlib
import functools
import hashlib
import struct
import time
-import base64
from datetime import datetime
-
-from dns.dnssectypes import Algorithm, DSDigest, NSEC3Hash
+from typing import Callable, Dict, List, Optional, Set, Tuple, Union, cast
import dns.exception
import dns.name
import dns.node
-import dns.rdataset
import dns.rdata
-import dns.rdatatype
import dns.rdataclass
+import dns.rdataset
+import dns.rdatatype
import dns.rrset
import dns.transaction
import dns.zone
+from dns.dnssectypes import Algorithm, DSDigest, NSEC3Hash
from dns.exception import ( # pylint: disable=W0611
AlgorithmKeyMismatch,
DeniedByPolicy,
from dns.rdtypes.ANY.RRSIG import RRSIG, sigtime_to_posixtime
from dns.rdtypes.dnskeybase import Flag
-
PublicKey = Union[
"GenericPublicKey",
"rsa.RSAPublicKey",
from cryptography.exceptions import InvalidSignature
from cryptography.hazmat.primitives.asymmetric import dsa # pylint: disable=W0611
from cryptography.hazmat.primitives.asymmetric import ec # pylint: disable=W0611
+ from cryptography.hazmat.primitives.asymmetric import ed448 # pylint: disable=W0611
+ from cryptography.hazmat.primitives.asymmetric import rsa # pylint: disable=W0611
from cryptography.hazmat.primitives.asymmetric import ( # pylint: disable=W0611
ed25519,
)
- from cryptography.hazmat.primitives.asymmetric import ed448 # pylint: disable=W0611
- from cryptography.hazmat.primitives.asymmetric import rsa # pylint: disable=W0611
+
from dns.dnssecalgs import ( # pylint: disable=C0412
get_algorithm_cls,
get_algorithm_cls_from_dnskey,
from dns.exception import UnsupportedAlgorithm
from dns.rdtypes.ANY.DNSKEY import DNSKEY
-
AlgorithmPrefix = Optional[Union[bytes, dns.name.Name]]
algorithms: Dict[Tuple[Algorithm, AlgorithmPrefix], Type[GenericPrivateKey]] = {
"""EDNS Options"""
-from typing import Any, Dict, Optional, Union
-
import math
import socket
import struct
+from typing import Any, Dict, Optional, Union
import dns.enum
import dns.inet
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-from typing import Any, Optional
-
-import os
import hashlib
+import os
import random
import threading
import time
+from typing import Any, Optional
class EntropyPool:
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-from typing import Type, TypeVar, Union
-
import enum
+from typing import Type, TypeVar, Union
TIntEnum = TypeVar("TIntEnum", bound="IntEnum")
"""DNS Message Flags."""
-from typing import Any
-
import enum
+from typing import Any
# Standard DNS flags
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-from typing import Any
-
import collections.abc
+from typing import Any
from dns._immutable_ctx import immutable
"""Generic Internet address helper functions."""
-from typing import Any, Optional, Tuple
-
import socket
+from typing import Any, Optional, Tuple
import dns.ipv4
import dns.ipv6
-
# We assume that AF_INET and AF_INET6 are always defined. We keep
# these here for the benefit of any old code (unlikely though that
# is!).
"""IPv4 helper functions."""
-from typing import Union
-
import struct
+from typing import Union
import dns.exception
"""IPv6 helper functions."""
-from typing import List, Union
-
-import re
import binascii
+import re
+from typing import List, Union
import dns.exception
import dns.ipv4
"""DNS Messages"""
-from typing import Any, Dict, List, Optional, Tuple, Union
-
import contextlib
import io
import time
+from typing import Any, Dict, List, Optional, Tuple, Union
-import dns.wire
import dns.edns
+import dns.entropy
import dns.enum
import dns.exception
import dns.flags
import dns.name
import dns.opcode
-import dns.entropy
import dns.rcode
import dns.rdata
import dns.rdataclass
import dns.rdatatype
-import dns.rrset
-import dns.renderer
-import dns.ttl
-import dns.tsig
import dns.rdtypes.ANY.OPT
import dns.rdtypes.ANY.TSIG
+import dns.renderer
+import dns.rrset
+import dns.tsig
+import dns.ttl
+import dns.wire
class ShortHeader(dns.exception.FormError):
"""DNS Names.
"""
-from typing import Any, Dict, Iterable, Optional, Tuple, Union
-
import copy
-import struct
-
import encodings.idna # type: ignore
+import struct
+from typing import Any, Dict, Iterable, Optional, Tuple, Union
try:
import idna # type: ignore
have_idna_2008 = False
import dns.enum
-import dns.wire
import dns.exception
import dns.immutable
-
+import dns.wire
CompressType = Dict["Name", int]
-from urllib.parse import urlparse
-
from typing import Optional, Union
+from urllib.parse import urlparse
import dns.asyncbackend
import dns.asyncquery
"""DNS nodes. A node is a set of rdatasets."""
-from typing import Any, Dict, Optional
-
import enum
import io
+from typing import Any, Dict, Optional
import dns.immutable
import dns.name
import dns.rdataclass
import dns.rdataset
import dns.rdatatype
-import dns.rrset
import dns.renderer
-
+import dns.rrset
_cname_types = {
dns.rdatatype.CNAME,
"""Talk to a DNS server."""
-from typing import Any, Dict, Optional, Tuple, Union
-
import base64
import contextlib
import enum
import socket
import struct
import time
+from typing import Any, Dict, Optional, Tuple, Union
import dns.exception
import dns.inet
-import dns.name
import dns.message
+import dns.name
import dns.quic
import dns.rcode
import dns.rdataclass
import dns.asyncbackend
from dns._asyncbackend import NullContext
- from dns.quic._sync import SyncQuicManager, SyncQuicConnection, SyncQuicStream
from dns.quic._asyncio import (
- AsyncioQuicManager,
AsyncioQuicConnection,
+ AsyncioQuicManager,
AsyncioQuicStream,
)
from dns.quic._common import AsyncQuicConnection, AsyncQuicManager
+ from dns.quic._sync import SyncQuicConnection, SyncQuicManager, SyncQuicStream
have_quic = True
try:
import trio
+
from dns.quic._trio import ( # pylint: disable=ungrouped-imports
- TrioQuicManager,
TrioQuicConnection,
+ TrioQuicManager,
TrioQuicStream,
)
import aioquic.quic.configuration # type: ignore
import aioquic.quic.connection # type: ignore
import aioquic.quic.events # type: ignore
-import dns.inet
-import dns.asyncbackend
+import dns.asyncbackend
+import dns.inet
from dns.quic._common import (
- BaseQuicStream,
+ QUIC_MAX_DATAGRAM,
AsyncQuicConnection,
AsyncQuicManager,
- QUIC_MAX_DATAGRAM,
+ BaseQuicStream,
UnexpectedEOF,
)
import socket
import struct
import time
-
from typing import Any
import aioquic.quic.configuration # type: ignore
import aioquic.quic.connection # type: ignore
-import dns.inet
+import dns.inet
QUIC_MAX_DATAGRAM = 2048
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
+import selectors
import socket
import ssl
-import selectors
import struct
import threading
import time
import aioquic.quic.configuration # type: ignore
import aioquic.quic.connection # type: ignore
import aioquic.quic.events # type: ignore
-import dns.inet
+import dns.inet
from dns.quic._common import (
- BaseQuicStream,
+ QUIC_MAX_DATAGRAM,
BaseQuicConnection,
BaseQuicManager,
- QUIC_MAX_DATAGRAM,
+ BaseQuicStream,
UnexpectedEOF,
)
import dns.inet
from dns._asyncbackend import NullContext
from dns.quic._common import (
- BaseQuicStream,
+ QUIC_MAX_DATAGRAM,
AsyncQuicConnection,
AsyncQuicManager,
- QUIC_MAX_DATAGRAM,
+ BaseQuicStream,
UnexpectedEOF,
)
"""DNS rdata."""
-from typing import Any, Dict, Optional, Tuple, Union
-
-from importlib import import_module
import base64
import binascii
-import io
import inspect
+import io
import itertools
import random
+from importlib import import_module
+from typing import Any, Dict, Optional, Tuple, Union
-import dns.wire
import dns.exception
import dns.immutable
import dns.ipv4
import dns.rdatatype
import dns.tokenizer
import dns.ttl
+import dns.wire
_chunksize = 32
"""DNS rdatasets (an rdataset is a set of rdatas of a given type and class)"""
-from typing import Any, cast, Collection, Dict, List, Optional, Union
-
import io
import random
import struct
+from typing import Any, Collection, Dict, List, Optional, Union, cast
import dns.exception
import dns.immutable
import dns.name
-import dns.rdatatype
-import dns.rdataclass
import dns.rdata
+import dns.rdataclass
+import dns.rdatatype
import dns.set
import dns.ttl
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.mxbase
import dns.immutable
+import dns.rdtypes.mxbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.txtbase
import dns.immutable
+import dns.rdtypes.txtbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.dnskeybase # lgtm[py/import-and-import-from]
import dns.immutable
+import dns.rdtypes.dnskeybase # lgtm[py/import-and-import-from]
# pylint: disable=unused-import
-from dns.rdtypes.dnskeybase import (
- SEP,
+from dns.rdtypes.dnskeybase import ( # noqa: F401 lgtm[py/unused-import]
REVOKE,
+ SEP,
ZONE,
-) # noqa: F401 lgtm[py/unused-import]
+)
# pylint: enable=unused-import
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.dsbase
import dns.immutable
+import dns.rdtypes.dsbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import base64
+import struct
+import dns.dnssectypes
import dns.exception
import dns.immutable
-import dns.dnssectypes
import dns.rdata
import dns.tokenizer
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.nsbase
import dns.immutable
+import dns.rdtypes.nsbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
+import dns.name
import dns.rdata
import dns.rdatatype
-import dns.name
import dns.rdtypes.util
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.dsbase
import dns.immutable
+import dns.rdtypes.dsbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.nsbase
import dns.immutable
+import dns.rdtypes.nsbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.dnskeybase # lgtm[py/import-and-import-from]
import dns.immutable
+import dns.rdtypes.dnskeybase # lgtm[py/import-and-import-from]
# pylint: disable=unused-import
-from dns.rdtypes.dnskeybase import (
- SEP,
+from dns.rdtypes.dnskeybase import ( # noqa: F401 lgtm[py/unused-import]
REVOKE,
+ SEP,
ZONE,
-) # noqa: F401 lgtm[py/unused-import]
+)
# pylint: enable=unused-import
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.dsbase
import dns.immutable
+import dns.rdtypes.dsbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.euibase
import dns.immutable
+import dns.rdtypes.euibase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.euibase
import dns.immutable
+import dns.rdtypes.euibase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import base64
import binascii
+import struct
import dns.exception
import dns.immutable
import dns.immutable
import dns.rdata
-
_pows = tuple(10**i for i in range(0, 11))
# default values are in centimeters
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.mxbase
import dns.immutable
+import dns.rdtypes.mxbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.txtbase
import dns.immutable
+import dns.rdtypes.txtbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.nsbase
import dns.immutable
+import dns.rdtypes.nsbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
+import dns.name
import dns.rdata
import dns.rdatatype
-import dns.name
import dns.rdtypes.util
import dns.rdatatype
import dns.rdtypes.util
-
b32_hex_to_normal = bytes.maketrans(
b"0123456789ABCDEFGHIJKLMNOPQRSTUV", b"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"
)
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import binascii
+import struct
import dns.exception
import dns.immutable
import struct
import dns.edns
-import dns.immutable
import dns.exception
+import dns.immutable
import dns.rdata
-
# We don't implement from_text, and that's ok.
# pylint: disable=abstract-method
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.nsbase
import dns.immutable
+import dns.rdtypes.nsbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
-import dns.rdata
import dns.name
+import dns.rdata
@dns.immutable.immutable
import time
import dns.dnssectypes
-import dns.immutable
import dns.exception
+import dns.immutable
import dns.rdata
import dns.rdatatype
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.mxbase
import dns.immutable
+import dns.rdtypes.mxbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
-import dns.rdata
import dns.name
+import dns.rdata
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.txtbase
import dns.immutable
+import dns.rdtypes.txtbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import binascii
+import struct
-import dns.rdata
import dns.immutable
+import dns.rdata
import dns.rdatatype
import base64
import struct
-import dns.immutable
import dns.exception
+import dns.immutable
import dns.rdata
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.txtbase
import dns.immutable
+import dns.rdtypes.txtbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
+import dns.name
import dns.rdata
import dns.rdtypes.util
-import dns.name
@dns.immutable.immutable
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-import struct
import binascii
+import struct
import dns.immutable
import dns.rdata
import struct
-import dns.rdtypes.mxbase
import dns.immutable
+import dns.rdtypes.mxbase
@dns.immutable.immutable
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-import dns.rdtypes.svcbbase
import dns.immutable
+import dns.rdtypes.svcbbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import base64
+import struct
import dns.exception
import dns.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.mxbase
import dns.immutable
+import dns.rdtypes.mxbase
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import dns.rdtypes.nsbase
import dns.immutable
+import dns.rdtypes.nsbase
@dns.immutable.immutable
import dns.exception
import dns.immutable
+import dns.name
import dns.rdata
import dns.rdtypes.util
-import dns.name
@dns.immutable.immutable
import dns.exception
import dns.immutable
+import dns.name
import dns.rdata
import dns.rdtypes.util
-import dns.name
@dns.immutable.immutable
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-import dns.rdtypes.svcbbase
import dns.immutable
+import dns.rdtypes.svcbbase
@dns.immutable.immutable
import socket
import struct
-import dns.ipv4
import dns.immutable
+import dns.ipv4
import dns.rdata
try:
import enum
import struct
+import dns.dnssectypes
import dns.exception
import dns.immutable
-import dns.dnssectypes
import dns.rdata
# wildcard import
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import binascii
+import struct
import dns.dnssectypes
import dns.immutable
import binascii
-import dns.rdata
import dns.immutable
+import dns.rdata
@dns.immutable.immutable
import dns.exception
import dns.immutable
-import dns.rdata
import dns.name
+import dns.rdata
import dns.rdtypes.util
import dns.exception
import dns.immutable
-import dns.rdata
import dns.name
+import dns.rdata
@dns.immutable.immutable
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-import struct
import binascii
+import struct
-import dns.rdata
import dns.immutable
+import dns.rdata
import dns.rdatatype
"""TXT-like base class."""
-from typing import Any, Dict, Iterable, Optional, Tuple, Union
-
import struct
+from typing import Any, Dict, Iterable, Optional, Tuple, Union
import dns.exception
import dns.immutable
import contextlib
import io
-import struct
import random
+import struct
import time
import dns.exception
import dns.tsig
-
QUESTION = 0
ANSWER = 1
AUTHORITY = 2
"""DNS stub resolver."""
-from typing import Any, Dict, Iterator, List, Optional, Tuple, Union
-
-from urllib.parse import urlparse
import contextlib
import random
import socket
import threading
import time
import warnings
+from typing import Any, Dict, Iterator, List, Optional, Tuple, Union
+from urllib.parse import urlparse
import dns._ddr
-import dns.exception
import dns.edns
+import dns.exception
import dns.flags
import dns.inet
import dns.ipv4
import binascii
-import dns.name
-import dns.ipv6
import dns.ipv4
+import dns.ipv6
+import dns.name
ipv4_reverse_domain = dns.name.from_text("in-addr.arpa.")
ipv6_reverse_domain = dns.name.from_text("ip6.arpa.")
"""DNS RRsets (an RRset is a named rdataset)"""
-from typing import Any, cast, Collection, Dict, Optional, Union
+from typing import Any, Collection, Dict, Optional, Union, cast
import dns.name
-import dns.rdataset
import dns.rdataclass
+import dns.rdataset
import dns.renderer
"""Tokenize DNS zone file format"""
-from typing import Any, Optional, List, Tuple
-
import io
import sys
+from typing import Any, List, Optional, Tuple
import dns.exception
import dns.name
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-from typing import Any, Callable, Iterator, List, Optional, Tuple, Union
-
import collections
+from typing import Any, Callable, Iterator, List, Optional, Tuple, Union
import dns.exception
import dns.name
import struct
import dns.exception
-import dns.rdataclass
import dns.name
import dns.rcode
+import dns.rdataclass
class BadTime(dns.exception.DNSException):
"""A place to store TSIG keys."""
-from typing import Any, Dict
-
import base64
+from typing import Any, Dict
import dns.name
import dns.tsig
import dns.opcode
import dns.rdata
import dns.rdataclass
-import dns.rdatatype
import dns.rdataset
+import dns.rdatatype
import dns.tsig
"""DNS Versioned Zones."""
-from typing import Callable, Deque, Optional, Set, Union
-
import collections
import threading
+from typing import Callable, Deque, Optional, Set, Union
import dns.exception
import dns.immutable
try:
import threading
+
import pythoncom # pylint: disable=import-error
import wmi # pylint: disable=import-error
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
-from typing import Iterator, Optional, Tuple
-
import contextlib
import struct
+from typing import Iterator, Optional, Tuple
import dns.exception
import dns.name
import dns.message
import dns.name
import dns.rcode
-import dns.serial
import dns.rdataset
import dns.rdatatype
+import dns.serial
import dns.transaction
import dns.tsig
import dns.zone
"""DNS Zones."""
-from typing import Any, Dict, Iterator, Iterable, List, Optional, Set, Tuple, Union
-
import contextlib
import io
import os
import struct
+from typing import Any, Dict, Iterable, Iterator, List, Optional, Set, Tuple, Union
import dns.exception
+import dns.grange
import dns.immutable
import dns.name
import dns.node
-import dns.rdataclass
-import dns.rdatatype
import dns.rdata
+import dns.rdataclass
import dns.rdataset
+import dns.rdatatype
import dns.rdtypes.ANY.SOA
import dns.rdtypes.ANY.ZONEMD
import dns.rrset
import dns.tokenizer
import dns.transaction
import dns.ttl
-import dns.grange
import dns.zonefile
-from dns.zonetypes import DigestScheme, DigestHashAlgorithm, _digest_hashers
+from dns.zonetypes import DigestHashAlgorithm, DigestScheme, _digest_hashers
class BadZone(dns.exception.DNSException):
"""DNS Zones."""
-from typing import Any, Iterable, List, Optional, Set, Tuple, Union
-
import re
import sys
+from typing import Any, Iterable, List, Optional, Set, Tuple, Union
import dns.exception
+import dns.grange
import dns.name
import dns.node
+import dns.rdata
import dns.rdataclass
import dns.rdatatype
-import dns.rdata
import dns.rdtypes.ANY.SOA
import dns.rrset
import dns.tokenizer
import dns.transaction
import dns.ttl
-import dns.grange
class UnknownOrigin(dns.exception.DNSException):
[tool.ruff]
ignore = ['E741', 'F401']
+
+[tool.isort]
+profile = "black"