code: def find_rdataset(self, rdclass, rdtype, covers=dns.rdatatype.NONE,
                        create=False):
          
  
          for rds in self.rdatasets:
              if rds.match(rdclass, rdtype, covers):
                  return rds
          if not create:
              raise KeyError
          rds = dns.rdataset.Rdataset(rdclass, rdtype)
          self.rdatasets.append(rds)
          return rds
docs: Find an rdataset matching the specified properties in the
          current node.
  
          @param rdclass: The class of the rdataset
          @type rdclass: int
          @param rdtype: The type of the rdataset
          @type rdtype: int
          @param covers: The covered type.  Usually this value is
          dns.rdatatype.NONE, but if the rdtype is dns.rdatatype.SIG or
          dns.rdatatype.RRSIG, then the covers value will be the rdata
          type the SIG/RRSIG covers.  The library treats the SIG and RRSIG
          types as if they were a family of
          types, e.g. RRSIG(A), RRSIG(NS), RRSIG(SOA).  This makes RRSIGs much
          easier to work with than if RRSIGs covering different rdata
          types were aggregated into a single RRSIG rdataset.
          @type covers: int
          @param create: If True, create the rdataset if it is not found.
          @type create: bool
          @raises KeyError: An rdataset of the desired type and class does
          not exist and I{create} is not True.
          @rtype: dns.rdataset.Rdataset object