code: def authors(self):
          
          out = []
          fields = 'auid indexed_name surname given_name affiliation'
          auth = namedtuple('Author', fields)
          for item in chained_get(self._json, ['authors', 'author'], []):
              affs = [a for a in listify(item.get('affiliation')) if a]
              if affs:
                  aff = [aff.get('@id') for aff in affs]
              else:
                  aff = None
              new = auth(auid=item['@auid'], surname=item.get('ce:surname'),
                  indexed_name=item.get('ce:indexed-name'), affiliation=aff,
                  given_name=chained_get(item, ['preferred-name', 'ce:given-name']))
              out.append(new)
          return out or None
docs: A list of namedtuples representing the article's authors, in the
          form (auid, indexed_name, surname, given_name, affiliation_id,
          affiliation, city, country).
          Note: The affiliation referred to here is what Scopus' algorithm
          determined as the main affiliation.  Property `authorgroup` provides
          all affiliations.