if not replacement:
assert isinstance(zone, dns.versioned.Zone)
version = zone._versions[-1]
- self.nodes: dns.btree.BTreeDict[dns.name.Name, Node] = dns.btree.BTreeDict(
+ self.nodes: dns.btree.BTreeDict[dns.name.Name, Node] = dns.btree.BTreeDict[
+ dns.name.Name, Node
+ ](
original=version.nodes # type: ignore
)
self.delegations = Delegations(original=version.delegations) # type: ignore
dnskey_ttl = dnskey.ttl
else:
soa = _txn.get(zone.origin, dns.rdatatype.SOA)
+ if soa is None:
+ raise ValueError("zone does not have an SOA at the origin")
dnskey_ttl = soa.ttl
for _, dnskey in keys:
_txn.add(zone.origin, dnskey_ttl, dnskey)
"""Tried to use an already-ended transaction."""
-def _ensure_immutable_rdataset(rdataset):
+def _ensure_immutable_rdataset(rdataset) -> dns.rdataset.ImmutableRdataset | None:
if rdataset is None or isinstance(rdataset, dns.rdataset.ImmutableRdataset):
return rdataset
return dns.rdataset.ImmutableRdataset(rdataset)
-def _ensure_immutable_node(node):
+def _ensure_immutable_node(node) -> dns.node.ImmutableNode | None:
if node is None or node.is_immutable():
return node
return dns.node.ImmutableNode(node)
name: dns.name.Name | str | None,
rdtype: dns.rdatatype.RdataType | str,
covers: dns.rdatatype.RdataType | str = dns.rdatatype.NONE,
- ) -> dns.rdataset.Rdataset:
+ ) -> dns.rdataset.Rdataset | None:
"""Return the rdataset associated with *name*, *rdtype*, and *covers*,
or ``None`` if not found.