diff options
Diffstat (limited to 'dns/rrset.py')
| -rw-r--r-- | dns/rrset.py | 134 |
1 files changed, 89 insertions, 45 deletions
diff --git a/dns/rrset.py b/dns/rrset.py index bfa4763..4217a04 100644 --- a/dns/rrset.py +++ b/dns/rrset.py @@ -36,12 +36,16 @@ class RRset(dns.rdataset.Rdataset): name. """ - __slots__ = ['name', 'deleting'] - - def __init__(self, name: dns.name.Name, rdclass: dns.rdataclass.RdataClass, - rdtype: dns.rdatatype.RdataType, - covers: dns.rdatatype.RdataType=dns.rdatatype.NONE, - deleting: Optional[dns.rdataclass.RdataClass]=None): + __slots__ = ["name", "deleting"] + + def __init__( + self, + name: dns.name.Name, + rdclass: dns.rdataclass.RdataClass, + rdtype: dns.rdatatype.RdataType, + covers: dns.rdatatype.RdataType = dns.rdatatype.NONE, + deleting: Optional[dns.rdataclass.RdataClass] = None, + ): """Create a new RRset.""" super().__init__(rdclass, rdtype, covers) @@ -56,17 +60,26 @@ class RRset(dns.rdataset.Rdataset): def __repr__(self): if self.covers == 0: - ctext = '' + ctext = "" else: - ctext = '(' + dns.rdatatype.to_text(self.covers) + ')' + ctext = "(" + dns.rdatatype.to_text(self.covers) + ")" if self.deleting is not None: - dtext = ' delete=' + dns.rdataclass.to_text(self.deleting) + dtext = " delete=" + dns.rdataclass.to_text(self.deleting) else: - dtext = '' - return '<DNS ' + str(self.name) + ' ' + \ - dns.rdataclass.to_text(self.rdclass) + ' ' + \ - dns.rdatatype.to_text(self.rdtype) + ctext + dtext + \ - ' RRset: ' + self._rdata_repr() + '>' + dtext = "" + return ( + "<DNS " + + str(self.name) + + " " + + dns.rdataclass.to_text(self.rdclass) + + " " + + dns.rdatatype.to_text(self.rdtype) + + ctext + + dtext + + " RRset: " + + self._rdata_repr() + + ">" + ) def __str__(self): return self.to_text() @@ -79,7 +92,9 @@ class RRset(dns.rdataset.Rdataset): return False return super().__eq__(other) - def match(self, *args: Any, **kwargs: Dict[str, Any]) -> bool: # type: ignore[override] + def match( # type: ignore[override] + self, *args: Any, **kwargs: Dict[str, Any] + ) -> bool: """Does this rrset match the specified attributes? Behaves as :py:func:`full_match()` if the first argument is a @@ -96,9 +111,14 @@ class RRset(dns.rdataset.Rdataset): else: return super().match(*args, **kwargs) # type: ignore[arg-type] - def full_match(self, name: dns.name.Name, rdclass: dns.rdataclass.RdataClass, - rdtype: dns.rdatatype.RdataType, covers: dns.rdatatype.RdataType, - deleting: Optional[dns.rdataclass.RdataClass]=None) -> bool: + def full_match( + self, + name: dns.name.Name, + rdclass: dns.rdataclass.RdataClass, + rdtype: dns.rdatatype.RdataType, + covers: dns.rdatatype.RdataType, + deleting: Optional[dns.rdataclass.RdataClass] = None, + ) -> bool: """Returns ``True`` if this rrset matches the specified name, class, type, covers, and deletion state. """ @@ -110,7 +130,12 @@ class RRset(dns.rdataset.Rdataset): # pylint: disable=arguments-differ - def to_text(self, origin: Optional[dns.name.Name]=None, relativize: bool=True, **kw) -> str: # type: ignore + def to_text( # type: ignore[override] + self, + origin: Optional[dns.name.Name] = None, + relativize: bool = True, + **kw: Dict[str, Any] + ) -> str: """Convert the RRset into DNS zone file format. See ``dns.name.Name.choose_relativity`` for more information @@ -127,11 +152,17 @@ class RRset(dns.rdataset.Rdataset): to *origin*. """ - return super().to_text(self.name, origin, relativize, - self.deleting, **kw) - - def to_wire(self, file: Any, compress: Optional[dns.name.CompressType]=None, # type: ignore - origin: Optional[dns.name.Name]=None, **kw) -> int: + return super().to_text( + self.name, origin, relativize, self.deleting, **kw # type: ignore + ) + + def to_wire( # type: ignore[override] + self, + file: Any, + compress: Optional[dns.name.CompressType] = None, # type: ignore + origin: Optional[dns.name.Name] = None, + **kw: Dict[str, Any] + ) -> int: """Convert the RRset to wire format. All keyword arguments are passed to ``dns.rdataset.to_wire()``; see @@ -140,8 +171,9 @@ class RRset(dns.rdataset.Rdataset): Returns an ``int``, the number of records emitted. """ - return super().to_wire(self.name, file, compress, origin, - self.deleting, **kw) + return super().to_wire( + self.name, file, compress, origin, self.deleting, **kw # type:ignore + ) # pylint: enable=arguments-differ @@ -153,13 +185,17 @@ class RRset(dns.rdataset.Rdataset): return dns.rdataset.from_rdata_list(self.ttl, list(self)) -def from_text_list(name: Union[dns.name.Name, str], ttl: int, - rdclass: Union[dns.rdataclass.RdataClass, str], - rdtype: Union[dns.rdatatype.RdataType, str], - text_rdatas: Collection[str], - idna_codec: Optional[dns.name.IDNACodec]=None, - origin: Optional[dns.name.Name]=None, relativize: bool=True, - relativize_to: Optional[dns.name.Name]=None) -> RRset: +def from_text_list( + name: Union[dns.name.Name, str], + ttl: int, + rdclass: Union[dns.rdataclass.RdataClass, str], + rdtype: Union[dns.rdatatype.RdataType, str], + text_rdatas: Collection[str], + idna_codec: Optional[dns.name.IDNACodec] = None, + origin: Optional[dns.name.Name] = None, + relativize: bool = True, + relativize_to: Optional[dns.name.Name] = None, +) -> RRset: """Create an RRset with the specified name, TTL, class, and type, and with the specified list of rdatas in text format. @@ -185,29 +221,37 @@ def from_text_list(name: Union[dns.name.Name, str], ttl: int, r = RRset(name, the_rdclass, the_rdtype) r.update_ttl(ttl) for t in text_rdatas: - rd = dns.rdata.from_text(r.rdclass, r.rdtype, t, origin, relativize, - relativize_to, idna_codec) + rd = dns.rdata.from_text( + r.rdclass, r.rdtype, t, origin, relativize, relativize_to, idna_codec + ) r.add(rd) return r -def from_text(name: Union[dns.name.Name, str], ttl: int, - rdclass: Union[dns.rdataclass.RdataClass, str], - rdtype: Union[dns.rdatatype.RdataType, str], - *text_rdatas: Any) -> RRset: +def from_text( + name: Union[dns.name.Name, str], + ttl: int, + rdclass: Union[dns.rdataclass.RdataClass, str], + rdtype: Union[dns.rdatatype.RdataType, str], + *text_rdatas: Any +) -> RRset: """Create an RRset with the specified name, TTL, class, and type and with the specified rdatas in text format. Returns a ``dns.rrset.RRset`` object. """ - return from_text_list(name, ttl, rdclass, rdtype, - cast(Collection[str], text_rdatas)) + return from_text_list( + name, ttl, rdclass, rdtype, cast(Collection[str], text_rdatas) + ) -def from_rdata_list(name: Union[dns.name.Name, str], ttl: int, - rdatas: Collection[dns.rdata.Rdata], - idna_codec: Optional[dns.name.IDNACodec]=None) -> RRset: +def from_rdata_list( + name: Union[dns.name.Name, str], + ttl: int, + rdatas: Collection[dns.rdata.Rdata], + idna_codec: Optional[dns.name.IDNACodec] = None, +) -> RRset: """Create an RRset with the specified name and TTL, and with the specified list of rdata objects. @@ -234,7 +278,7 @@ def from_rdata_list(name: Union[dns.name.Name, str], ttl: int, return r -def from_rdata(name: Union[dns.name.Name, str], ttl:int, *rdatas: Any) -> RRset: +def from_rdata(name: Union[dns.name.Name, str], ttl: int, *rdatas: Any) -> RRset: """Create an RRset with the specified name and TTL, and with the specified rdata objects. |
