From: Brian Wellington Date: Wed, 1 Apr 2020 19:49:21 +0000 (-0700) Subject: Improve rdataset/rrset repr to include rdata. X-Git-Tag: v2.0.0rc1~318^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e5fc5a6ff87d254020d713eaba9c8942221a500;p=thirdparty%2Fdnspython.git Improve rdataset/rrset repr to include rdata. Previously, repr() of rdataset/rrset looked like this: With this patch, it they look like: , <5.6.7.8>]> , <"baz">]> ]> , <5.6.7.8>]> , <"baz">]> ]> Note that each rdata is truncated to 100 characters. --- diff --git a/dns/rdataset.py b/dns/rdataset.py index df08c944..16a8f891 100644 --- a/dns/rdataset.py +++ b/dns/rdataset.py @@ -143,13 +143,22 @@ class Rdataset(dns.set.Set): self.update_ttl(other.ttl) super(Rdataset, self).update(other) + def _rdata_repr(self): + def maybe_truncate(s): + if len(s) > 100: + return s[:100] + '...' + return s + return '[%s]' % ', '.join('<%s>' % maybe_truncate(str(rr)) + for rr in self) + def __repr__(self): if self.covers == 0: ctext = '' else: ctext = '(' + dns.rdatatype.to_text(self.covers) + ')' return '' + dns.rdatatype.to_text(self.rdtype) + ctext + \ + ' rdataset: ' + self._rdata_repr() + '>' def __str__(self): return self.to_text() diff --git a/dns/rrset.py b/dns/rrset.py index 8be43396..c5ed5ba4 100644 --- a/dns/rrset.py +++ b/dns/rrset.py @@ -62,7 +62,8 @@ class RRset(dns.rdataset.Rdataset): dtext = '' return '' + dns.rdatatype.to_text(self.rdtype) + ctext + dtext + \ + ' RRset: ' + self._rdata_repr() + '>' def __str__(self): return self.to_text()