From 7545d056247fc578d9569b99a7e8f573749cd8df Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Thu, 2 Nov 2023 11:29:16 -0700 Subject: [PATCH] support qh3 as well as aioquic --- dns/quic/__init__.py | 10 ++++++++-- dns/quic/_asyncio.py | 15 ++++++++++++--- dns/quic/_common.py | 12 ++++++++++-- dns/quic/_sync.py | 15 ++++++++++++--- dns/quic/_trio.py | 16 +++++++++++++--- tests/nanoquic.py | 15 +++++++++++---- 6 files changed, 66 insertions(+), 17 deletions(-) diff --git a/dns/quic/__init__.py b/dns/quic/__init__.py index 69813f9f..cb032632 100644 --- a/dns/quic/__init__.py +++ b/dns/quic/__init__.py @@ -1,8 +1,14 @@ # Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license try: - import aioquic.quic.configuration # type: ignore - + # pylint: disable=unused-import + try: + import qh3 as aioquic # type: ignore + import qh3.quic.configuration # type: ignore + except ImportError: + import aioquic # type: ignore + import aioquic.quic.configuration # type: ignore + # pylint: enable=unused-import import dns.asyncbackend from dns._asyncbackend import NullContext from dns.quic._asyncio import ( diff --git a/dns/quic/_asyncio.py b/dns/quic/_asyncio.py index 0f44331f..8b793b7a 100644 --- a/dns/quic/_asyncio.py +++ b/dns/quic/_asyncio.py @@ -6,9 +6,18 @@ import ssl import struct import time -import aioquic.quic.configuration # type: ignore -import aioquic.quic.connection # type: ignore -import aioquic.quic.events # type: ignore +# pylint: disable=unused-import +try: + import qh3 as aioquic # type: ignore + import qh3.quic.configuration # type: ignore + import qh3.quic.connection # type: ignore + import qh3.quic.events # type: ignore +except ImportError: + import aioquic # type: ignore + import aioquic.quic.configuration # type: ignore + import aioquic.quic.connection # type: ignore + import aioquic.quic.events # type: ignore +# pylint: enable=unused-import import dns.asyncbackend import dns.exception diff --git a/dns/quic/_common.py b/dns/quic/_common.py index 0eacc691..e01112a0 100644 --- a/dns/quic/_common.py +++ b/dns/quic/_common.py @@ -7,8 +7,16 @@ import struct import time from typing import Any, Optional -import aioquic.quic.configuration # type: ignore -import aioquic.quic.connection # type: ignore +# pylint: disable=unused-import +try: + import qh3 as aioquic # type: ignore + import qh3.quic.configuration # type: ignore + import qh3.quic.connection # type: ignore +except ImportError: + import aioquic # type: ignore + import aioquic.quic.configuration # type: ignore + import aioquic.quic.connection # type: ignore +# pylint: enable=unused-import import dns.inet diff --git a/dns/quic/_sync.py b/dns/quic/_sync.py index d6731c90..8720338b 100644 --- a/dns/quic/_sync.py +++ b/dns/quic/_sync.py @@ -7,9 +7,18 @@ import struct import threading import time -import aioquic.quic.configuration # type: ignore -import aioquic.quic.connection # type: ignore -import aioquic.quic.events # type: ignore +# pylint: disable=unused-import +try: + import qh3 as aioquic # type: ignore + import qh3.quic.configuration # type: ignore + import qh3.quic.connection # type: ignore + import qh3.quic.events # type: ignore +except ImportError: + import aioquic # type: ignore + import aioquic.quic.configuration # type: ignore + import aioquic.quic.connection # type: ignore + import aioquic.quic.events # type: ignore +# pylint: enable=unused-import import dns.exception import dns.inet diff --git a/dns/quic/_trio.py b/dns/quic/_trio.py index 0284c982..72440397 100644 --- a/dns/quic/_trio.py +++ b/dns/quic/_trio.py @@ -5,9 +5,19 @@ import ssl import struct import time -import aioquic.quic.configuration # type: ignore -import aioquic.quic.connection # type: ignore -import aioquic.quic.events # type: ignore +# pylint: disable=unused-import +try: + import qh3 as aioquic # type: ignore + import qh3.quic.configuration # type: ignore + import qh3.quic.connection # type: ignore + import qh3.quic.events # type: ignore +except ImportError: + import aioquic # type: ignore + import aioquic.quic.configuration # type: ignore + import aioquic.quic.connection # type: ignore + import aioquic.quic.events # type: ignore +# pylint: enable=unused-import + import trio import dns.exception diff --git a/tests/nanoquic.py b/tests/nanoquic.py index 47c10431..e53612f6 100644 --- a/tests/nanoquic.py +++ b/tests/nanoquic.py @@ -6,10 +6,17 @@ try: import struct import threading - import aioquic.asyncio - import aioquic.asyncio.server - import aioquic.quic.configuration - import aioquic.quic.events + try: + import qh3 as aioquic + import qh3.asyncio + import qh3.asyncio.server + import qh3.quic.configuration + import qh3.quic.events + except ImportError: + import aioquic.asyncio + import aioquic.asyncio.server + import aioquic.quic.configuration + import aioquic.quic.events import dns.asyncquery import dns.message -- 2.47.3