code: def _handle_authors(authors):
      
  
      aulast = []
      auinit = []
      if type(authors) is list:
          for author in authors:
              if type(author) is str:
                  author = unicode(author)
              author = unidecode(author)
              try:
                  l,i = _handle_author(author)
                  aulast.append(l)
                  auinit.append(i)
              except ValueError:
                  pass
      elif type(authors) is str or type(authors) is unicode:
          if type(authors) is str:
              authors = unicode(authors)
          author = unidecode(authors)
          try:
              l,i = _handle_author(author)
              aulast.append(l)
              auinit.append(i)
          except ValueError:
              pass
      else:
          raise ValueError("authors must be a list or a string")
  
      return aulast, auinit
docs: Yields aulast and auinit lists from value of authors node.
  
      Parameters
      ----------
      authors : list, str, or unicode
          Value or values of 'author' element in DfR XML.
  
      Returns
      -------
      aulast : list
          A list of author surnames (string).
      auinit : list
          A list of author first-initials (string).