'Given a list of authors, return the author_sort string for the authors,
preferring the author sort associated with the author over the computed
string.'

@read_api
def author_sort_from_authors(self, authors, key_func=icu_lower):

    table = self.fields[u'authors'].table
    result = []
    rmap = {key_func(v): k for (k, v) in table.id_map.iteritems()}
    for aut in authors:
        aid = rmap.get(key_func(aut), None)
        result.append((author_to_author_sort(aut) if (aid is None) else table.asort_map[aid]))
    return u'    &    '.join(filter(None, result))
