code: def present(self, name, *args):
          
  
          if isinstance(name, (str, unicode)):
              name = dns.name.from_text(name, None)
          if len(args) == 0:
              rrset = self.find_rrset(self.answer, name,
                                      dns.rdataclass.ANY, dns.rdatatype.ANY,
                                      dns.rdatatype.NONE, None,
                                      True, True)
          elif isinstance(args[0], dns.rdataset.Rdataset) or \
               isinstance(args[0], dns.rdata.Rdata) or \
               len(args) > 1:
              if not isinstance(args[0], dns.rdataset.Rdataset):
                  # Add a 0 TTL
                  args = list(args)
                  args.insert(0, 0)
              self._add(False, self.answer, name, *args)
          else:
              rdtype = args[0]
              if isinstance(rdtype, (str, unicode)):
                  rdtype = dns.rdatatype.from_text(rdtype)
              rrset = self.find_rrset(self.answer, name,
                                      dns.rdataclass.ANY, rdtype,
                                      dns.rdatatype.NONE, None,
                                      True, True)
docs: Require that an owner name (and optionally an rdata type,
          or specific rdataset) exists as a prerequisite to the
          execution of the update.  The first argument is always a name.
          The other arguments can be:
  
                  - rdataset...
  
                  - rdata...
  
                  - rdtype, string...