dnspython 2.6.1__tar.gz → 2.7.0__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.
Files changed (253) hide show
  1. {dnspython-2.6.1 → dnspython-2.7.0}/PKG-INFO +18 -16
  2. {dnspython-2.6.1 → dnspython-2.7.0}/README.md +7 -8
  3. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_asyncbackend.py +4 -3
  4. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_asyncio_backend.py +4 -4
  5. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_features.py +6 -3
  6. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_trio_backend.py +10 -7
  7. {dnspython-2.6.1 → dnspython-2.7.0}/dns/asyncquery.py +256 -123
  8. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssec.py +31 -7
  9. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/__init__.py +2 -1
  10. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/base.py +6 -1
  11. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/dsa.py +6 -1
  12. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/ecdsa.py +10 -2
  13. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/eddsa.py +6 -1
  14. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/rsa.py +6 -1
  15. {dnspython-2.6.1 → dnspython-2.7.0}/dns/edns.py +64 -8
  16. {dnspython-2.6.1 → dnspython-2.7.0}/dns/exception.py +1 -1
  17. {dnspython-2.6.1 → dnspython-2.7.0}/dns/grange.py +1 -1
  18. {dnspython-2.6.1 → dnspython-2.7.0}/dns/ipv6.py +1 -3
  19. {dnspython-2.6.1 → dnspython-2.7.0}/dns/message.py +78 -33
  20. {dnspython-2.6.1 → dnspython-2.7.0}/dns/name.py +3 -2
  21. {dnspython-2.6.1 → dnspython-2.7.0}/dns/nameserver.py +4 -0
  22. {dnspython-2.6.1 → dnspython-2.7.0}/dns/query.py +315 -228
  23. {dnspython-2.6.1 → dnspython-2.7.0}/dns/quic/__init__.py +5 -0
  24. {dnspython-2.6.1 → dnspython-2.7.0}/dns/quic/_asyncio.py +57 -18
  25. {dnspython-2.6.1 → dnspython-2.7.0}/dns/quic/_common.py +121 -6
  26. {dnspython-2.6.1 → dnspython-2.7.0}/dns/quic/_sync.py +78 -21
  27. {dnspython-2.6.1 → dnspython-2.7.0}/dns/quic/_trio.py +45 -9
  28. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdata.py +42 -15
  29. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdataset.py +3 -7
  30. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdatatype.py +5 -1
  31. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/GPOS.py +3 -2
  32. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/HINFO.py +1 -3
  33. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/HIP.py +1 -1
  34. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/ISDN.py +4 -3
  35. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/LOC.py +6 -7
  36. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NSEC.py +1 -1
  37. dnspython-2.7.0/dns/rdtypes/ANY/RESINFO.py +24 -0
  38. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/RP.py +1 -1
  39. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/TKEY.py +1 -1
  40. dnspython-2.7.0/dns/rdtypes/ANY/WALLET.py +9 -0
  41. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/X25.py +1 -1
  42. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/__init__.py +2 -0
  43. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/CH/A.py +1 -1
  44. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/NSAP.py +1 -1
  45. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/euibase.py +4 -4
  46. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/svcbbase.py +32 -0
  47. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/txtbase.py +3 -1
  48. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/util.py +1 -1
  49. {dnspython-2.6.1 → dnspython-2.7.0}/dns/resolver.py +19 -20
  50. {dnspython-2.6.1 → dnspython-2.7.0}/dns/set.py +6 -5
  51. {dnspython-2.6.1 → dnspython-2.7.0}/dns/tokenizer.py +1 -1
  52. {dnspython-2.6.1 → dnspython-2.7.0}/dns/transaction.py +1 -3
  53. {dnspython-2.6.1 → dnspython-2.7.0}/dns/ttl.py +1 -1
  54. {dnspython-2.6.1 → dnspython-2.7.0}/dns/version.py +2 -2
  55. {dnspython-2.6.1 → dnspython-2.7.0}/dns/win32util.py +15 -25
  56. {dnspython-2.6.1 → dnspython-2.7.0}/dns/xfr.py +1 -1
  57. {dnspython-2.6.1 → dnspython-2.7.0}/dns/zonefile.py +32 -34
  58. {dnspython-2.6.1 → dnspython-2.7.0}/examples/doh-json.py +2 -1
  59. dnspython-2.7.0/examples/dot.py +22 -0
  60. {dnspython-2.6.1 → dnspython-2.7.0}/examples/receive_notify.py +2 -3
  61. {dnspython-2.6.1 → dnspython-2.7.0}/examples/reverse.py +3 -2
  62. dnspython-2.7.0/examples/tsig.py +18 -0
  63. {dnspython-2.6.1 → dnspython-2.7.0}/examples/zonediff.py +2 -2
  64. {dnspython-2.6.1 → dnspython-2.7.0}/pyproject.toml +24 -7
  65. dnspython-2.7.0/tests/doh.py +65 -0
  66. dnspython-2.7.0/tests/doq.py +357 -0
  67. {dnspython-2.6.1 → dnspython-2.7.0}/tests/example +14 -8
  68. {dnspython-2.6.1 → dnspython-2.7.0}/tests/example1.good +6 -0
  69. {dnspython-2.6.1 → dnspython-2.7.0}/tests/example2.good +6 -0
  70. {dnspython-2.6.1 → dnspython-2.7.0}/tests/example3.good +6 -0
  71. {dnspython-2.6.1 → dnspython-2.7.0}/tests/example4.good +6 -0
  72. {dnspython-2.6.1 → dnspython-2.7.0}/tests/nanonameserver.py +216 -91
  73. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_async.py +57 -1
  74. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_constants.py +7 -6
  75. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_dnssec.py +50 -1
  76. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_doh.py +66 -0
  77. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_doq.py +19 -14
  78. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_edns.py +50 -0
  79. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_message.py +63 -0
  80. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_query.py +7 -4
  81. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdata.py +38 -9
  82. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_resolver.py +0 -29
  83. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_transaction.py +41 -1
  84. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_tsig.py +26 -4
  85. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_ttl.py +8 -0
  86. dnspython-2.7.0/tests/tls/ca.crt +19 -0
  87. dnspython-2.7.0/tests/tls/private.pem +27 -0
  88. dnspython-2.7.0/tests/tls/public.crt +20 -0
  89. dnspython-2.6.1/tests/nanoquic.py +0 -137
  90. dnspython-2.6.1/tests/tls/ca.crt +0 -20
  91. dnspython-2.6.1/tests/tls/private.pem +0 -3
  92. dnspython-2.6.1/tests/tls/public.crt +0 -35
  93. {dnspython-2.6.1 → dnspython-2.7.0}/.gitignore +0 -0
  94. {dnspython-2.6.1 → dnspython-2.7.0}/LICENSE +0 -0
  95. {dnspython-2.6.1 → dnspython-2.7.0}/dns/__init__.py +0 -0
  96. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_ddr.py +0 -0
  97. {dnspython-2.6.1 → dnspython-2.7.0}/dns/_immutable_ctx.py +0 -0
  98. {dnspython-2.6.1 → dnspython-2.7.0}/dns/asyncbackend.py +0 -0
  99. {dnspython-2.6.1 → dnspython-2.7.0}/dns/asyncresolver.py +0 -0
  100. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssecalgs/cryptography.py +0 -0
  101. {dnspython-2.6.1 → dnspython-2.7.0}/dns/dnssectypes.py +0 -0
  102. {dnspython-2.6.1 → dnspython-2.7.0}/dns/e164.py +0 -0
  103. {dnspython-2.6.1 → dnspython-2.7.0}/dns/entropy.py +0 -0
  104. {dnspython-2.6.1 → dnspython-2.7.0}/dns/enum.py +0 -0
  105. {dnspython-2.6.1 → dnspython-2.7.0}/dns/flags.py +0 -0
  106. {dnspython-2.6.1 → dnspython-2.7.0}/dns/immutable.py +0 -0
  107. {dnspython-2.6.1 → dnspython-2.7.0}/dns/inet.py +0 -0
  108. {dnspython-2.6.1 → dnspython-2.7.0}/dns/ipv4.py +0 -0
  109. {dnspython-2.6.1 → dnspython-2.7.0}/dns/namedict.py +0 -0
  110. {dnspython-2.6.1 → dnspython-2.7.0}/dns/node.py +0 -0
  111. {dnspython-2.6.1 → dnspython-2.7.0}/dns/opcode.py +0 -0
  112. {dnspython-2.6.1 → dnspython-2.7.0}/dns/py.typed +0 -0
  113. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rcode.py +0 -0
  114. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdataclass.py +0 -0
  115. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/AFSDB.py +0 -0
  116. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/AMTRELAY.py +0 -0
  117. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/AVC.py +0 -0
  118. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CAA.py +0 -0
  119. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CDNSKEY.py +0 -0
  120. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CDS.py +0 -0
  121. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CERT.py +0 -0
  122. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CNAME.py +0 -0
  123. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/CSYNC.py +0 -0
  124. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/DLV.py +0 -0
  125. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/DNAME.py +0 -0
  126. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/DNSKEY.py +0 -0
  127. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/DS.py +0 -0
  128. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/EUI48.py +0 -0
  129. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/EUI64.py +0 -0
  130. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/L32.py +0 -0
  131. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/L64.py +0 -0
  132. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/LP.py +0 -0
  133. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/MX.py +0 -0
  134. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NID.py +0 -0
  135. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NINFO.py +0 -0
  136. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NS.py +0 -0
  137. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NSEC3.py +0 -0
  138. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/NSEC3PARAM.py +0 -0
  139. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/OPENPGPKEY.py +0 -0
  140. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/OPT.py +0 -0
  141. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/PTR.py +0 -0
  142. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/RRSIG.py +0 -0
  143. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/RT.py +0 -0
  144. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/SMIMEA.py +0 -0
  145. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/SOA.py +0 -0
  146. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/SPF.py +0 -0
  147. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/SSHFP.py +0 -0
  148. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/TLSA.py +0 -0
  149. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/TSIG.py +0 -0
  150. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/TXT.py +0 -0
  151. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/URI.py +0 -0
  152. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/ANY/ZONEMD.py +0 -0
  153. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/CH/__init__.py +0 -0
  154. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/A.py +0 -0
  155. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/AAAA.py +0 -0
  156. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/APL.py +0 -0
  157. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/DHCID.py +0 -0
  158. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/HTTPS.py +0 -0
  159. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/IPSECKEY.py +0 -0
  160. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/KX.py +0 -0
  161. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/NAPTR.py +0 -0
  162. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/NSAP_PTR.py +0 -0
  163. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/PX.py +0 -0
  164. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/SRV.py +0 -0
  165. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/SVCB.py +0 -0
  166. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/WKS.py +0 -0
  167. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/IN/__init__.py +0 -0
  168. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/__init__.py +0 -0
  169. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/dnskeybase.py +0 -0
  170. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/dsbase.py +0 -0
  171. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/mxbase.py +0 -0
  172. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/nsbase.py +0 -0
  173. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rdtypes/tlsabase.py +0 -0
  174. {dnspython-2.6.1 → dnspython-2.7.0}/dns/renderer.py +0 -0
  175. {dnspython-2.6.1 → dnspython-2.7.0}/dns/reversename.py +0 -0
  176. {dnspython-2.6.1 → dnspython-2.7.0}/dns/rrset.py +0 -0
  177. {dnspython-2.6.1 → dnspython-2.7.0}/dns/serial.py +0 -0
  178. {dnspython-2.6.1 → dnspython-2.7.0}/dns/tsig.py +0 -0
  179. {dnspython-2.6.1 → dnspython-2.7.0}/dns/tsigkeyring.py +0 -0
  180. {dnspython-2.6.1 → dnspython-2.7.0}/dns/update.py +0 -0
  181. {dnspython-2.6.1 → dnspython-2.7.0}/dns/versioned.py +0 -0
  182. {dnspython-2.6.1 → dnspython-2.7.0}/dns/wire.py +0 -0
  183. {dnspython-2.6.1 → dnspython-2.7.0}/dns/zone.py +0 -0
  184. {dnspython-2.6.1 → dnspython-2.7.0}/dns/zonetypes.py +0 -0
  185. {dnspython-2.6.1 → dnspython-2.7.0}/examples/async_dns.py +1 -1
  186. {dnspython-2.6.1 → dnspython-2.7.0}/examples/ddns.py +1 -1
  187. {dnspython-2.6.1 → dnspython-2.7.0}/examples/ddr.py +2 -2
  188. {dnspython-2.6.1 → dnspython-2.7.0}/examples/doh.py +0 -0
  189. {dnspython-2.6.1 → dnspython-2.7.0}/examples/doq.py +0 -0
  190. {dnspython-2.6.1 → dnspython-2.7.0}/examples/e164.py +0 -0
  191. {dnspython-2.6.1 → dnspython-2.7.0}/examples/ecs.py +0 -0
  192. {dnspython-2.6.1 → dnspython-2.7.0}/examples/edns.py +0 -0
  193. {dnspython-2.6.1 → dnspython-2.7.0}/examples/edns_resolver.py +0 -0
  194. {dnspython-2.6.1 → dnspython-2.7.0}/examples/mx.py +0 -0
  195. {dnspython-2.6.1 → dnspython-2.7.0}/examples/name.py +0 -0
  196. {dnspython-2.6.1 → dnspython-2.7.0}/examples/query_specific.py +1 -1
  197. {dnspython-2.6.1 → dnspython-2.7.0}/examples/reverse_name.py +0 -0
  198. {dnspython-2.6.1 → dnspython-2.7.0}/examples/send_notify.py +1 -1
  199. {dnspython-2.6.1 → dnspython-2.7.0}/examples/wire_read_tcp.py +0 -0
  200. {dnspython-2.6.1 → dnspython-2.7.0}/examples/xfr.py +0 -0
  201. {dnspython-2.6.1 → dnspython-2.7.0}/tests/__init__.py +0 -0
  202. {dnspython-2.6.1 → dnspython-2.7.0}/tests/keys.py +0 -0
  203. {dnspython-2.6.1 → dnspython-2.7.0}/tests/md_module.py +0 -0
  204. {dnspython-2.6.1 → dnspython-2.7.0}/tests/mx-2-0.pickle +0 -0
  205. {dnspython-2.6.1 → dnspython-2.7.0}/tests/query +0 -0
  206. {dnspython-2.6.1 → dnspython-2.7.0}/tests/stxt_module.py +0 -0
  207. {dnspython-2.6.1 → dnspython-2.7.0}/tests/svcb_test_vectors.generic +0 -0
  208. {dnspython-2.6.1 → dnspython-2.7.0}/tests/svcb_test_vectors.text +0 -0
  209. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_address.py +0 -0
  210. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_bugs.py +0 -0
  211. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_ddr.py +0 -0
  212. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_dnssecalgs.py +0 -0
  213. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_entropy.py +0 -0
  214. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_exceptions.py +0 -0
  215. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_features.py +0 -0
  216. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_flags.py +0 -0
  217. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_generate.py +0 -0
  218. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_grange.py +0 -0
  219. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_immutable.py +0 -0
  220. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_name.py +0 -0
  221. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_namedict.py +0 -0
  222. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_nsec3.py +0 -0
  223. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_nsec3_hash.py +0 -0
  224. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_ntoaaton.py +0 -0
  225. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_processing_order.py +0 -0
  226. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdataset.py +0 -0
  227. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdtypeandclass.py +0 -0
  228. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdtypeanydnskey.py +0 -0
  229. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdtypeanyeui.py +0 -0
  230. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdtypeanyloc.py +0 -0
  231. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rdtypeanytkey.py +0 -0
  232. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_renderer.py +0 -0
  233. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_resolution.py +0 -0
  234. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_resolver_override.py +0 -0
  235. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rrset.py +0 -0
  236. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_rrset_reader.py +0 -0
  237. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_serial.py +0 -0
  238. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_set.py +0 -0
  239. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_svcb.py +0 -0
  240. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_tokenizer.py +0 -0
  241. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_tsigkeyring.py +0 -0
  242. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_update.py +0 -0
  243. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_wire.py +0 -0
  244. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_xfr.py +0 -0
  245. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_zone.py +0 -0
  246. {dnspython-2.6.1 → dnspython-2.7.0}/tests/test_zonedigest.py +0 -0
  247. {dnspython-2.6.1 → dnspython-2.7.0}/tests/ttxt_module.py +0 -0
  248. {dnspython-2.6.1 → dnspython-2.7.0}/tests/utest.py +0 -0
  249. {dnspython-2.6.1 → dnspython-2.7.0}/tests/util.py +0 -0
  250. {dnspython-2.6.1 → dnspython-2.7.0}/util/constants-tool +0 -0
  251. {dnspython-2.6.1 → dnspython-2.7.0}/util/generate-features +0 -0
  252. {dnspython-2.6.1 → dnspython-2.7.0}/util/generate-mx-pickle.py +0 -0
  253. {dnspython-2.6.1 → dnspython-2.7.0}/util/generate-rdatatype-doc.py +0 -0
@@ -1,13 +1,13 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: dnspython
3
- Version: 2.6.1
3
+ Version: 2.7.0
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-Expression: ISC
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.8
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>=41; extra == 'dnssec'
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.9.25; extra == 'doq'
49
+ Requires-Dist: aioquic>=1.0.0; extra == 'doq'
47
50
  Provides-Extra: idna
48
- Requires-Dist: idna>=3.6; extra == 'idna'
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
- [![Build Status](https://github.com/rthalley/dnspython/actions/workflows/python-package.yml/badge.svg)](https://github.com/rthalley/dnspython/actions/)
60
+ [![Build Status](https://github.com/rthalley/dnspython/actions/workflows/ci.yml/badge.svg)](https://github.com/rthalley/dnspython/actions/)
58
61
  [![Documentation Status](https://readthedocs.org/projects/dnspython/badge/?version=latest)](https://dnspython.readthedocs.io/en/latest/?badge=latest)
59
62
  [![PyPI version](https://badge.fury.io/py/dnspython.svg)](https://badge.fury.io/py/dnspython)
60
63
  [![License: ISC](https://img.shields.io/badge/License-ISC-brightgreen.svg)](https://opensource.org/licenses/ISC)
61
- [![Coverage](https://codecov.io/github/rthalley/dnspython/coverage.svg?branch=master)](https://codecov.io/github/rthalley/dnspython)
62
64
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
63
65
 
64
66
  ## INTRODUCTION
@@ -84,7 +86,7 @@ to facilitate the testing of DNS software.
84
86
 
85
87
  ## ABOUT THIS RELEASE
86
88
 
87
- This is dnspython 2.6.1.
89
+ This is dnspython 2.7.0.
88
90
  Please read
89
91
  [What's New](https://dnspython.readthedocs.io/en/stable/whatsnew.html) for
90
92
  information about the changes in this release.
@@ -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 master branch, run `pip install git+https://github.com/rthalley/dnspython.git`
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.0.0 through
142
- 2.2.x support Python 3.6 and later. For dnspython 2.3.x, the minimum
143
- supported Python version is 3.7, and for 2.4.x the minimum supported verison is 3.8.
144
- We plan to align future support with the lifetime of the Python 3 versions.
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
- [![Build Status](https://github.com/rthalley/dnspython/actions/workflows/python-package.yml/badge.svg)](https://github.com/rthalley/dnspython/actions/)
3
+ [![Build Status](https://github.com/rthalley/dnspython/actions/workflows/ci.yml/badge.svg)](https://github.com/rthalley/dnspython/actions/)
4
4
  [![Documentation Status](https://readthedocs.org/projects/dnspython/badge/?version=latest)](https://dnspython.readthedocs.io/en/latest/?badge=latest)
5
5
  [![PyPI version](https://badge.fury.io/py/dnspython.svg)](https://badge.fury.io/py/dnspython)
6
6
  [![License: ISC](https://img.shields.io/badge/License-ISC-brightgreen.svg)](https://opensource.org/licenses/ISC)
7
- [![Coverage](https://codecov.io/github/rthalley/dnspython/coverage.svg?branch=master)](https://codecov.io/github/rthalley/dnspython)
8
7
  [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
9
8
 
10
9
  ## INTRODUCTION
@@ -30,7 +29,7 @@ to facilitate the testing of DNS software.
30
29
 
31
30
  ## ABOUT THIS RELEASE
32
31
 
33
- This is dnspython 2.6.1.
32
+ This is dnspython 2.7.0.
34
33
  Please read
35
34
  [What's New](https://dnspython.readthedocs.io/en/stable/whatsnew.html) for
36
35
  information about the changes in this release.
@@ -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 master branch, run `pip install git+https://github.com/rthalley/dnspython.git`
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.0.0 through
88
- 2.2.x support Python 3.6 and later. For dnspython 2.3.x, the minimum
89
- supported Python version is 3.7, and for 2.4.x the minimum supported verison is 3.8.
90
- We plan to align future support with the lifetime of the Python 3 versions.
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
- self.family = af
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>=41"],
88
+ "dnssec": ["cryptography>=43"],
86
89
  "doh": ["httpcore>=1.0.0", "httpx>=0.26.0", "h2>=4.1.0"],
87
- "doq": ["aioquic>=0.9.25"],
88
- "idna": ["idna>=3.6"],
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, socket):
34
- super().__init__(socket.family)
35
- self.socket = 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
- return await self.socket.sendto(what, destination)
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
- self.family = family
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))