'Delete records.  The first argument is always a name.  The other
arguments can be:
- I{nothing}
- rdataset...
- rdata...
- rdtype, [string...]'

def delete(self, name, *args):

    if isinstance(name, string_types):
        name = dns.name.from_text(name, None)
    if (len(args) == 0):
        self.find_rrset(self.authority, name, dns.rdataclass.ANY, dns.rdatatype.ANY, dns.rdatatype.NONE, dns.rdatatype.ANY, True, True)
    elif isinstance(args[0], dns.rdataset.Rdataset):
        for rds in args:
            for rd in rds:
                self._add_rr(name, 0, rd, dns.rdataclass.NONE)
    else:
        args = list(args)
        if isinstance(args[0], dns.rdata.Rdata):
            for rd in args:
                self._add_rr(name, 0, rd, dns.rdataclass.NONE)
        else:
            rdtype = args.pop(0)
            if isinstance(rdtype, string_types):
                rdtype = dns.rdatatype.from_text(rdtype)
            if (len(args) == 0):
                self.find_rrset(self.authority, name, self.zone_rdclass, rdtype, dns.rdatatype.NONE, dns.rdataclass.ANY, True, True)
            else:
                for s in args:
                    rd = dns.rdata.from_text(self.zone_rdclass, rdtype, s, self.origin)
                    self._add_rr(name, 0, rd, dns.rdataclass.NONE)
