def build_author_inclusion_filter(authors: Strings) -> EdgePredicate:
if isinstance(authors, str):<EOL><INDENT>@edge_predicate<EOL>def author_filter(data: EdgeData) -> bool:<EOL><INDENT>"""<STR_LIT>"""<EOL>return has_authors(data) and authors in data[CITATION][CITATION_AUTHORS]<EOL><DEDENT><DEDENT>elif isinstance(authors, Iterable):<EOL><INDENT>authors = set(authors)<EOL>@edge_predicate<EOL>def author_filter(data: EdgeData) -> bool:<EOL><INDENT>"""<STR_LIT>"""<EOL>return has_authors(data) and any(<EOL>author in data[CITATION][CITATION_AUTHORS]<EOL>for author in authors<EOL>)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>raise TypeError<EOL><DEDENT>return author_filter<EOL>
Pass only for edges with author information that matches one of the given authors.

    :param authors: The author or list of authors to filter by