From 2e5fc5a6ff87d254020d713eaba9c8942221a500 Mon Sep 17 00:00:00 2001 From: Brian Wellington Date: Wed, 1 Apr 2020 12:49:21 -0700 Subject: [PATCH] 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. --- dns/rdataset.py | 11 ++++++++++- dns/rrset.py | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) 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() -- 2.47.3