return f"{cls._prefix()}{value}"
@classmethod
- def to_enum(cls, value):
+ def make(cls, value):
+ """Convert text or a value into an enumerated type, if possible.
+
+ *value*, the ``int`` or ``str`` to convert.
+
+ Raises a class-specific exception if a ``str`` is provided that
+ cannot be converted.
+
+ Raises ``ValueError`` if the value is out of range.
+
+ Returns an enumeration from the calling class corresponding to the
+ value, if one is defined, or an ``int`` otherwise.
+ """
+
if isinstance(value, str):
return cls.from_text(value)
cls._check_value(value)
if isinstance(qname, str):
qname = dns.name.from_text(qname, idna_codec=idna_codec)
- rdtype = dns.rdatatype.to_enum(rdtype)
- rdclass = dns.rdataclass.to_enum(rdclass)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
m = Message()
m.flags |= dns.flags.RD
m.find_rrset(m.question, qname, rdclass, rdtype, create=True,
if isinstance(zone, str):
zone = dns.name.from_text(zone)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
q = dns.message.make_query(zone, rdtype, rdclass)
if rdtype == dns.rdatatype.IXFR:
rrset = dns.rrset.from_text(zone, 0, 'IN', 'SOA',
if isinstance(tok, str):
tok = dns.tokenizer.Tokenizer(tok, idna_codec=idna_codec)
- rdclass = dns.rdataclass.to_enum(rdclass)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
cls = get_rdata_class(rdclass, rdtype)
if cls != GenericRdata:
# peek at first token
"""
wire = dns.wiredata.maybe_wrap(wire)
- rdclass = dns.rdataclass.to_enum(rdclass)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
cls = get_rdata_class(rdclass, rdtype)
return cls.from_wire(rdclass, rdtype, wire, current, rdlen, origin)
return RdataClass.to_text(value)
-def to_enum(value):
- """Convert a DNS rdata class value to an enumerated type, if possible.
-
- *value*, an ``int`` or ``str``, the rdata class.
-
- Returns an ``int``.
- """
-
- return RdataClass.to_enum(value)
-
-
def is_metaclass(rdclass):
"""True if the specified class is a metaclass.
Returns a ``dns.rdataset.Rdataset`` object.
"""
- rdclass = dns.rdataclass.to_enum(rdclass)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
r = Rdataset(rdclass, rdtype)
r.update_ttl(ttl)
for t in text_rdatas:
return text.replace('_', '-')
-def to_enum(value):
- """Convert a DNS rdata type value to an enumerated type, if possible.
-
- *value*, an ``int`` or ``str``, the rdata type.
-
- Returns an ``int``.
- """
-
- return RdataType.to_enum(value)
-
-
def is_metatype(rdtype):
"""True if the specified type is a metatype.
raise_on_no_answer, search):
if isinstance(qname, str):
qname = dns.name.from_text(qname, None)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if dns.rdatatype.is_metatype(rdtype):
raise NoMetaqueries
- rdclass = dns.rdataclass.to_enum(rdclass)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
if dns.rdataclass.is_metaclass(rdclass):
raise NoMetaqueries
self.resolver = resolver
if isinstance(name, str):
name = dns.name.from_text(name, None, idna_codec=idna_codec)
- rdclass = dns.rdataclass.to_enum(rdclass)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
r = RRset(name, rdclass, rdtype)
r.update_ttl(ttl)
for t in text_rdatas:
if isinstance(zone, str):
zone = dns.name.from_text(zone)
self.origin = zone
- rdclass = dns.rdataclass.to_enum(rdclass)
+ rdclass = dns.rdataclass.RdataClass.make(rdclass)
self.zone_rdclass = rdclass
self.find_rrset(self.question, self.origin, rdclass, dns.rdatatype.SOA,
create=True, force_unique=True)
for rd in args:
self._add_rr(name, ttl, rd, section=section)
else:
- rdtype = dns.rdatatype.to_enum(args.pop(0))
+ rdtype = dns.rdatatype.RdataType.make(args.pop(0))
if replace:
self.delete(name, rdtype)
for s in args:
for rd in args:
self._add_rr(name, 0, rd, dns.rdataclass.NONE)
else:
- rdtype = dns.rdatatype.to_enum(args.pop(0))
+ rdtype = dns.rdatatype.RdataType.make(args.pop(0))
if len(args) == 0:
self.find_rrset(self.authority, name,
self.zone_rdclass, rdtype,
args.insert(0, 0)
self._add(False, self.answer, name, *args)
else:
- rdtype = dns.rdatatype.to_enum(args[0])
+ rdtype = dns.rdatatype.RdataType.make(args[0])
self.find_rrset(self.answer, name,
dns.rdataclass.ANY, rdtype,
dns.rdatatype.NONE, None,
dns.rdatatype.NONE, None,
True, True)
else:
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
self.find_rrset(self.answer, name,
dns.rdataclass.NONE, rdtype,
dns.rdatatype.NONE, None,
"""
name = self._validate_name(name)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if covers is not None:
- covers = dns.rdatatype.to_enum(covers)
+ covers = dns.rdatatype.RdataType.make(covers)
node = self.find_node(name, create)
return node.find_rdataset(self.rdclass, rdtype, covers, create)
"""
name = self._validate_name(name)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if covers is not None:
- covers = dns.rdatatype.to_enum(covers)
+ covers = dns.rdatatype.RdataType.make(covers)
node = self.get_node(name)
if node is not None:
node.delete_rdataset(self.rdclass, rdtype, covers)
"""
name = self._validate_name(name)
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if covers is not None:
- covers = dns.rdatatype.to_enum(covers)
+ covers = dns.rdatatype.RdataType.make(covers)
rdataset = self.nodes[name].find_rdataset(self.rdclass, rdtype, covers)
rrset = dns.rrset.RRset(name, self.rdclass, rdtype, covers)
rrset.update(rdataset)
RRSIG rdataset.
"""
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if covers is not None:
- covers = dns.rdatatype.to_enum(covers)
+ covers = dns.rdatatype.RdataType.make(covers)
for (name, node) in self.items():
for rds in node:
if rdtype == dns.rdatatype.ANY or \
RRSIG rdataset.
"""
- rdtype = dns.rdatatype.to_enum(rdtype)
+ rdtype = dns.rdatatype.RdataType.make(rdtype)
if covers is not None:
- covers = dns.rdatatype.to_enum(covers)
+ covers = dns.rdatatype.RdataType.make(covers)
for (name, node) in self.items():
for rds in node:
if rdtype == dns.rdatatype.ANY or \