dnspython 2.6.1__tar.gz → 2.7.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/PKG-INFO +19 -17
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/README.md +8 -9
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_asyncbackend.py +4 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_asyncio_backend.py +4 -4
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_features.py +6 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_trio_backend.py +10 -7
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/asyncquery.py +254 -123
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssec.py +31 -7
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/__init__.py +2 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/base.py +6 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/dsa.py +6 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/ecdsa.py +10 -2
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/eddsa.py +6 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/rsa.py +6 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/edns.py +64 -8
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/exception.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/grange.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/ipv6.py +1 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/message.py +78 -33
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/name.py +3 -2
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/nameserver.py +4 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/query.py +313 -228
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/quic/__init__.py +5 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/quic/_asyncio.py +57 -18
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/quic/_common.py +121 -6
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/quic/_sync.py +78 -21
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/quic/_trio.py +45 -9
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdata.py +42 -15
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdataset.py +3 -7
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdatatype.py +5 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/GPOS.py +3 -2
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/HINFO.py +1 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/HIP.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/ISDN.py +4 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/LOC.py +6 -7
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NSEC.py +1 -1
- dnspython-2.7.0rc1/dns/rdtypes/ANY/RESINFO.py +24 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/RP.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/TKEY.py +1 -1
- dnspython-2.7.0rc1/dns/rdtypes/ANY/WALLET.py +9 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/X25.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/__init__.py +2 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/CH/A.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/NSAP.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/euibase.py +4 -4
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/svcbbase.py +32 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/txtbase.py +3 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/util.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/resolver.py +17 -19
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/set.py +6 -5
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/tokenizer.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/transaction.py +1 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/ttl.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/version.py +4 -4
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/win32util.py +15 -25
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/xfr.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/zonefile.py +32 -34
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/doh-json.py +2 -1
- dnspython-2.7.0rc1/examples/dot.py +22 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/receive_notify.py +2 -3
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/reverse.py +3 -2
- dnspython-2.7.0rc1/examples/tsig.py +18 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/zonediff.py +2 -2
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/pyproject.toml +24 -7
- dnspython-2.7.0rc1/tests/doh.py +65 -0
- dnspython-2.7.0rc1/tests/doq.py +357 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/example +14 -8
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/example1.good +6 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/example2.good +6 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/example3.good +6 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/example4.good +6 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/nanonameserver.py +216 -91
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_async.py +57 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_constants.py +7 -6
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_dnssec.py +50 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_doh.py +66 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_doq.py +19 -14
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_edns.py +50 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_message.py +63 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_query.py +7 -4
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdata.py +38 -9
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_resolver.py +0 -29
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_transaction.py +41 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_tsig.py +26 -4
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_ttl.py +8 -0
- dnspython-2.7.0rc1/tests/tls/ca.crt +19 -0
- dnspython-2.7.0rc1/tests/tls/private.pem +27 -0
- dnspython-2.7.0rc1/tests/tls/public.crt +20 -0
- dnspython-2.6.1/tests/nanoquic.py +0 -137
- dnspython-2.6.1/tests/tls/ca.crt +0 -20
- dnspython-2.6.1/tests/tls/private.pem +0 -3
- dnspython-2.6.1/tests/tls/public.crt +0 -35
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/.gitignore +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/LICENSE +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/__init__.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_ddr.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/_immutable_ctx.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/asyncbackend.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/asyncresolver.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssecalgs/cryptography.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/dnssectypes.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/e164.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/entropy.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/enum.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/flags.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/immutable.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/inet.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/ipv4.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/namedict.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/node.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/opcode.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/py.typed +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rcode.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdataclass.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/AFSDB.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/AMTRELAY.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/AVC.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CAA.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CDNSKEY.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CDS.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CERT.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CNAME.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/CSYNC.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/DLV.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/DNAME.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/DNSKEY.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/DS.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/EUI48.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/EUI64.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/L32.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/L64.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/LP.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/MX.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NID.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NINFO.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NS.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NSEC3.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/NSEC3PARAM.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/OPENPGPKEY.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/OPT.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/PTR.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/RRSIG.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/RT.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/SMIMEA.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/SOA.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/SPF.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/SSHFP.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/TLSA.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/TSIG.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/TXT.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/URI.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/ANY/ZONEMD.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/CH/__init__.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/A.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/AAAA.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/APL.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/DHCID.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/HTTPS.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/IPSECKEY.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/KX.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/NAPTR.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/NSAP_PTR.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/PX.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/SRV.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/SVCB.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/WKS.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/IN/__init__.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/__init__.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/dnskeybase.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/dsbase.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/mxbase.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/nsbase.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rdtypes/tlsabase.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/renderer.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/reversename.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/rrset.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/serial.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/tsig.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/tsigkeyring.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/update.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/versioned.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/wire.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/zone.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/dns/zonetypes.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/async_dns.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/ddns.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/ddr.py +2 -2
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/doh.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/doq.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/e164.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/ecs.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/edns.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/edns_resolver.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/mx.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/name.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/query_specific.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/reverse_name.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/send_notify.py +1 -1
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/wire_read_tcp.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/examples/xfr.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/__init__.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/keys.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/md_module.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/mx-2-0.pickle +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/query +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/stxt_module.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/svcb_test_vectors.generic +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/svcb_test_vectors.text +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_address.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_bugs.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_ddr.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_dnssecalgs.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_entropy.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_exceptions.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_features.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_flags.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_generate.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_grange.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_immutable.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_name.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_namedict.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_nsec3.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_nsec3_hash.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_ntoaaton.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_processing_order.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdataset.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdtypeandclass.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdtypeanydnskey.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdtypeanyeui.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdtypeanyloc.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rdtypeanytkey.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_renderer.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_resolution.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_resolver_override.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rrset.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_rrset_reader.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_serial.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_set.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_svcb.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_tokenizer.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_tsigkeyring.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_update.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_wire.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_xfr.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_zone.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/test_zonedigest.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/ttxt_module.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/utest.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/tests/util.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/util/constants-tool +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/util/generate-features +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/util/generate-mx-pickle.py +0 -0
- {dnspython-2.6.1 → dnspython-2.7.0rc1}/util/generate-rdatatype-doc.py +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: dnspython
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.0rc1
|
|
4
4
|
Summary: DNS toolkit
|
|
5
5
|
Project-URL: homepage, https://www.dnspython.org
|
|
6
6
|
Project-URL: repository, https://github.com/rthalley/dnspython.git
|
|
7
7
|
Project-URL: documentation, https://dnspython.readthedocs.io/en/stable/
|
|
8
8
|
Project-URL: issues, https://github.com/rthalley/dnspython/issues
|
|
9
9
|
Author-email: Bob Halley <halley@dnspython.org>
|
|
10
|
-
License
|
|
10
|
+
License: ISC
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Classifier: Development Status :: 5 - Production/Stable
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
@@ -17,35 +17,38 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
17
17
|
Classifier: Operating System :: POSIX
|
|
18
18
|
Classifier: Programming Language :: Python
|
|
19
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.9
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
25
25
|
Classifier: Topic :: Internet :: Name Service (DNS)
|
|
26
26
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
-
Requires-Python: >=3.
|
|
27
|
+
Requires-Python: >=3.9
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: black>=23.1.0; extra == 'dev'
|
|
30
30
|
Requires-Dist: coverage>=7.0; extra == 'dev'
|
|
31
31
|
Requires-Dist: flake8>=7; extra == 'dev'
|
|
32
|
+
Requires-Dist: hypercorn>=0.16.0; extra == 'dev'
|
|
32
33
|
Requires-Dist: mypy>=1.8; extra == 'dev'
|
|
33
34
|
Requires-Dist: pylint>=3; extra == 'dev'
|
|
34
35
|
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
35
36
|
Requires-Dist: pytest>=7.4; extra == 'dev'
|
|
37
|
+
Requires-Dist: quart-trio>=0.11.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: sphinx-rtd-theme>=2.0.0; extra == 'dev'
|
|
36
39
|
Requires-Dist: sphinx>=7.2.0; extra == 'dev'
|
|
37
40
|
Requires-Dist: twine>=4.0.0; extra == 'dev'
|
|
38
41
|
Requires-Dist: wheel>=0.42.0; extra == 'dev'
|
|
39
42
|
Provides-Extra: dnssec
|
|
40
|
-
Requires-Dist: cryptography>=
|
|
43
|
+
Requires-Dist: cryptography>=43; extra == 'dnssec'
|
|
41
44
|
Provides-Extra: doh
|
|
42
45
|
Requires-Dist: h2>=4.1.0; extra == 'doh'
|
|
43
46
|
Requires-Dist: httpcore>=1.0.0; extra == 'doh'
|
|
44
47
|
Requires-Dist: httpx>=0.26.0; extra == 'doh'
|
|
45
48
|
Provides-Extra: doq
|
|
46
|
-
Requires-Dist: aioquic>=0.
|
|
49
|
+
Requires-Dist: aioquic>=1.0.0; extra == 'doq'
|
|
47
50
|
Provides-Extra: idna
|
|
48
|
-
Requires-Dist: idna>=3.
|
|
51
|
+
Requires-Dist: idna>=3.7; extra == 'idna'
|
|
49
52
|
Provides-Extra: trio
|
|
50
53
|
Requires-Dist: trio>=0.23; extra == 'trio'
|
|
51
54
|
Provides-Extra: wmi
|
|
@@ -54,11 +57,10 @@ Description-Content-Type: text/markdown
|
|
|
54
57
|
|
|
55
58
|
# dnspython
|
|
56
59
|
|
|
57
|
-
[](https://github.com/rthalley/dnspython/actions/)
|
|
58
61
|
[](https://dnspython.readthedocs.io/en/latest/?badge=latest)
|
|
59
62
|
[](https://badge.fury.io/py/dnspython)
|
|
60
63
|
[](https://opensource.org/licenses/ISC)
|
|
61
|
-
[](https://codecov.io/github/rthalley/dnspython)
|
|
62
64
|
[](https://github.com/psf/black)
|
|
63
65
|
|
|
64
66
|
## INTRODUCTION
|
|
@@ -84,9 +86,9 @@ to facilitate the testing of DNS software.
|
|
|
84
86
|
|
|
85
87
|
## ABOUT THIS RELEASE
|
|
86
88
|
|
|
87
|
-
This is dnspython 2.
|
|
89
|
+
This is dnspython 2.7.0.
|
|
88
90
|
Please read
|
|
89
|
-
[What's New](https://dnspython.readthedocs.io/en/
|
|
91
|
+
[What's New](https://dnspython.readthedocs.io/en/latest/whatsnew.html) for
|
|
90
92
|
information about the changes in this release.
|
|
91
93
|
|
|
92
94
|
## INSTALLATION
|
|
@@ -106,7 +108,7 @@ information about the changes in this release.
|
|
|
106
108
|
pip install dist/*.whl
|
|
107
109
|
```
|
|
108
110
|
|
|
109
|
-
* To install the latest from the
|
|
111
|
+
* To install the latest from the main branch, run `pip install git+https://github.com/rthalley/dnspython.git`
|
|
110
112
|
|
|
111
113
|
Dnspython's default installation does not depend on any modules other than
|
|
112
114
|
those in the Python standard library. To use some features, additional modules
|
|
@@ -138,10 +140,10 @@ Note that you can install any combination of the above, e.g.:
|
|
|
138
140
|
|
|
139
141
|
### Notices
|
|
140
142
|
|
|
141
|
-
Python 2.x support ended with the release of 1.16.0. Dnspython 2.
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
Python 2.x support ended with the release of 1.16.0. Dnspython 2.6.x supports
|
|
144
|
+
Python 3.8 and later, though support for 3.8 ends on October 14, 2024.
|
|
145
|
+
Dnspython 2.7.x supports Python 3.9 and later. Future support is aligned with the
|
|
146
|
+
lifetime of the Python 3 versions.
|
|
145
147
|
|
|
146
148
|
Documentation has moved to
|
|
147
149
|
[dnspython.readthedocs.io](https://dnspython.readthedocs.io).
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# dnspython
|
|
2
2
|
|
|
3
|
-
[](https://github.com/rthalley/dnspython/actions/)
|
|
4
4
|
[](https://dnspython.readthedocs.io/en/latest/?badge=latest)
|
|
5
5
|
[](https://badge.fury.io/py/dnspython)
|
|
6
6
|
[](https://opensource.org/licenses/ISC)
|
|
7
|
-
[](https://codecov.io/github/rthalley/dnspython)
|
|
8
7
|
[](https://github.com/psf/black)
|
|
9
8
|
|
|
10
9
|
## INTRODUCTION
|
|
@@ -30,9 +29,9 @@ to facilitate the testing of DNS software.
|
|
|
30
29
|
|
|
31
30
|
## ABOUT THIS RELEASE
|
|
32
31
|
|
|
33
|
-
This is dnspython 2.
|
|
32
|
+
This is dnspython 2.7.0.
|
|
34
33
|
Please read
|
|
35
|
-
[What's New](https://dnspython.readthedocs.io/en/
|
|
34
|
+
[What's New](https://dnspython.readthedocs.io/en/latest/whatsnew.html) for
|
|
36
35
|
information about the changes in this release.
|
|
37
36
|
|
|
38
37
|
## INSTALLATION
|
|
@@ -52,7 +51,7 @@ information about the changes in this release.
|
|
|
52
51
|
pip install dist/*.whl
|
|
53
52
|
```
|
|
54
53
|
|
|
55
|
-
* To install the latest from the
|
|
54
|
+
* To install the latest from the main branch, run `pip install git+https://github.com/rthalley/dnspython.git`
|
|
56
55
|
|
|
57
56
|
Dnspython's default installation does not depend on any modules other than
|
|
58
57
|
those in the Python standard library. To use some features, additional modules
|
|
@@ -84,10 +83,10 @@ Note that you can install any combination of the above, e.g.:
|
|
|
84
83
|
|
|
85
84
|
### Notices
|
|
86
85
|
|
|
87
|
-
Python 2.x support ended with the release of 1.16.0. Dnspython 2.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
Python 2.x support ended with the release of 1.16.0. Dnspython 2.6.x supports
|
|
87
|
+
Python 3.8 and later, though support for 3.8 ends on October 14, 2024.
|
|
88
|
+
Dnspython 2.7.x supports Python 3.9 and later. Future support is aligned with the
|
|
89
|
+
lifetime of the Python 3 versions.
|
|
91
90
|
|
|
92
91
|
Documentation has moved to
|
|
93
92
|
[dnspython.readthedocs.io](https://dnspython.readthedocs.io).
|
|
@@ -26,6 +26,10 @@ class NullContext:
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class Socket: # pragma: no cover
|
|
29
|
+
def __init__(self, family: int, type: int):
|
|
30
|
+
self.family = family
|
|
31
|
+
self.type = type
|
|
32
|
+
|
|
29
33
|
async def close(self):
|
|
30
34
|
pass
|
|
31
35
|
|
|
@@ -46,9 +50,6 @@ class Socket: # pragma: no cover
|
|
|
46
50
|
|
|
47
51
|
|
|
48
52
|
class DatagramSocket(Socket): # pragma: no cover
|
|
49
|
-
def __init__(self, family: int):
|
|
50
|
-
self.family = family
|
|
51
|
-
|
|
52
53
|
async def sendto(self, what, destination, timeout):
|
|
53
54
|
raise NotImplementedError
|
|
54
55
|
|
|
@@ -42,7 +42,7 @@ class _DatagramProtocol:
|
|
|
42
42
|
if exc is None:
|
|
43
43
|
# EOF we triggered. Is there a better way to do this?
|
|
44
44
|
try:
|
|
45
|
-
raise EOFError
|
|
45
|
+
raise EOFError("EOF")
|
|
46
46
|
except EOFError as e:
|
|
47
47
|
self.recvfrom.set_exception(e)
|
|
48
48
|
else:
|
|
@@ -64,7 +64,7 @@ async def _maybe_wait_for(awaitable, timeout):
|
|
|
64
64
|
|
|
65
65
|
class DatagramSocket(dns._asyncbackend.DatagramSocket):
|
|
66
66
|
def __init__(self, family, transport, protocol):
|
|
67
|
-
super().__init__(family)
|
|
67
|
+
super().__init__(family, socket.SOCK_DGRAM)
|
|
68
68
|
self.transport = transport
|
|
69
69
|
self.protocol = protocol
|
|
70
70
|
|
|
@@ -99,7 +99,7 @@ class DatagramSocket(dns._asyncbackend.DatagramSocket):
|
|
|
99
99
|
|
|
100
100
|
class StreamSocket(dns._asyncbackend.StreamSocket):
|
|
101
101
|
def __init__(self, af, reader, writer):
|
|
102
|
-
|
|
102
|
+
super().__init__(af, socket.SOCK_STREAM)
|
|
103
103
|
self.reader = reader
|
|
104
104
|
self.writer = writer
|
|
105
105
|
|
|
@@ -197,7 +197,7 @@ if dns._features.have("doh"):
|
|
|
197
197
|
family=socket.AF_UNSPEC,
|
|
198
198
|
**kwargs,
|
|
199
199
|
):
|
|
200
|
-
if resolver is None:
|
|
200
|
+
if resolver is None and bootstrap_address is None:
|
|
201
201
|
# pylint: disable=import-outside-toplevel,redefined-outer-name
|
|
202
202
|
import dns.asyncresolver
|
|
203
203
|
|
|
@@ -32,6 +32,9 @@ def _version_check(
|
|
|
32
32
|
package, minimum = requirement.split(">=")
|
|
33
33
|
try:
|
|
34
34
|
version = importlib.metadata.version(package)
|
|
35
|
+
# This shouldn't happen, but it apparently can.
|
|
36
|
+
if version is None:
|
|
37
|
+
return False
|
|
35
38
|
except Exception:
|
|
36
39
|
return False
|
|
37
40
|
t_version = _tuple_from_text(version)
|
|
@@ -82,10 +85,10 @@ def force(feature: str, enabled: bool) -> None:
|
|
|
82
85
|
|
|
83
86
|
_requirements: Dict[str, List[str]] = {
|
|
84
87
|
### BEGIN generated requirements
|
|
85
|
-
"dnssec": ["cryptography>=
|
|
88
|
+
"dnssec": ["cryptography>=43"],
|
|
86
89
|
"doh": ["httpcore>=1.0.0", "httpx>=0.26.0", "h2>=4.1.0"],
|
|
87
|
-
"doq": ["aioquic>=0.
|
|
88
|
-
"idna": ["idna>=3.
|
|
90
|
+
"doq": ["aioquic>=1.0.0"],
|
|
91
|
+
"idna": ["idna>=3.7"],
|
|
89
92
|
"trio": ["trio>=0.23"],
|
|
90
93
|
"wmi": ["wmi>=1.5.1"],
|
|
91
94
|
### END generated requirements
|
|
@@ -30,13 +30,16 @@ _lltuple = dns.inet.low_level_address_tuple
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
class DatagramSocket(dns._asyncbackend.DatagramSocket):
|
|
33
|
-
def __init__(self,
|
|
34
|
-
super().__init__(socket.
|
|
35
|
-
self.socket =
|
|
33
|
+
def __init__(self, sock):
|
|
34
|
+
super().__init__(sock.family, socket.SOCK_DGRAM)
|
|
35
|
+
self.socket = sock
|
|
36
36
|
|
|
37
37
|
async def sendto(self, what, destination, timeout):
|
|
38
38
|
with _maybe_timeout(timeout):
|
|
39
|
-
|
|
39
|
+
if destination is None:
|
|
40
|
+
return await self.socket.send(what)
|
|
41
|
+
else:
|
|
42
|
+
return await self.socket.sendto(what, destination)
|
|
40
43
|
raise dns.exception.Timeout(
|
|
41
44
|
timeout=timeout
|
|
42
45
|
) # pragma: no cover lgtm[py/unreachable-statement]
|
|
@@ -61,7 +64,7 @@ class DatagramSocket(dns._asyncbackend.DatagramSocket):
|
|
|
61
64
|
|
|
62
65
|
class StreamSocket(dns._asyncbackend.StreamSocket):
|
|
63
66
|
def __init__(self, family, stream, tls=False):
|
|
64
|
-
|
|
67
|
+
super().__init__(family, socket.SOCK_STREAM)
|
|
65
68
|
self.stream = stream
|
|
66
69
|
self.tls = tls
|
|
67
70
|
|
|
@@ -171,7 +174,7 @@ if dns._features.have("doh"):
|
|
|
171
174
|
family=socket.AF_UNSPEC,
|
|
172
175
|
**kwargs,
|
|
173
176
|
):
|
|
174
|
-
if resolver is None:
|
|
177
|
+
if resolver is None and bootstrap_address is None:
|
|
175
178
|
# pylint: disable=import-outside-toplevel,redefined-outer-name
|
|
176
179
|
import dns.asyncresolver
|
|
177
180
|
|
|
@@ -205,7 +208,7 @@ class Backend(dns._asyncbackend.Backend):
|
|
|
205
208
|
try:
|
|
206
209
|
if source:
|
|
207
210
|
await s.bind(_lltuple(source, af))
|
|
208
|
-
if socktype == socket.SOCK_STREAM:
|
|
211
|
+
if socktype == socket.SOCK_STREAM or destination is not None:
|
|
209
212
|
connected = False
|
|
210
213
|
with _maybe_timeout(timeout):
|
|
211
214
|
await s.connect(_lltuple(destination, af))
|