def from_conllu(lines, passage_id=None, return_original=False, annotate=
    False, terminals_only=False, dep=False, enhanced=True, preprocess=True,
    **kwargs):
    """Converts from parsed text in Universal Dependencies format to a Passage object.

    :param lines: iterable of lines in Universal Dependencies format, describing a single passage.
    :param passage_id: ID to set for passage
    :param return_original: return triple of (UCCA passage, Universal Dependencies string, sentence ID)
    :param annotate: whether to save dependency annotations in "extra" dict of layer 0
    :param terminals_only: create only terminals (with any annotation if specified), no non-terminals
    :param dep: return dependency graph rather than converted UCCA passage
    :param enhanced: whether to include enhanced edges
    :param preprocess: preprocess the dependency graph before converting to UCCA (or returning it)?

    :return generator of Passage objects
    """
    from semstr.conversion.conllu import ConlluConverter
    return ConlluConverter(enhanced=enhanced).from_format(lines, passage_id
        =passage_id, return_original=return_original, annotate=annotate,
        terminals_only=terminals_only, dep=dep, preprocess=preprocess,
        format=kwargs.get('format'))
