def get_doc_entries(target: typing.Callable) -> list:
    """
    Gets the lines of documentation from the given target, which are formatted
    so that each line is a documentation entry.

    :param target:
    :return:
        A list of strings containing the documentation block entries
    """

    raw = get_docstring(target)

    if not raw:
        return []

    raw_lines = [
        line.strip()
        for line in raw.replace('\r', '').split('\n')
    ]

    def compactify(compacted: list, entry: str) -> list:
        chars = entry.strip()

        if not chars:
            return compacted

        if len(compacted) < 1 or chars.startswith(':'):
            compacted.append(entry.rstrip())
        else:
            compacted[-1] = '{}\n{}'.format(compacted[-1], entry.rstrip())

        return compacted

    return [
        textwrap.dedent(block).strip()
        for block in functools.reduce(compactify, raw_lines, [])
    ]
def get_doc_entries ( target : typing . Callable ) -> list : raw = get_docstring ( target ) if not raw : return [ ] raw_lines = [ line . strip ( ) for line in raw . replace ( '\r' , '' ) . split ( '\n' ) ] def compactify ( compacted : list , entry : str ) -> list : chars = entry . strip ( ) if not chars : return compacted if len ( compacted ) < 1 or chars . startswith ( ':' ) : compacted . append ( entry . rstrip ( ) ) else : compacted [ - 1 ] = '{}\n{}' . format ( compacted [ - 1 ] , entry . rstrip ( ) ) return compacted return [ textwrap . dedent ( block ) . strip ( ) for block in functools . reduce ( compactify , raw_lines , [ ] ) ]
Gets the lines of documentation from the given target, which are formatted
    so that each line is a documentation entry.

    :param target:
    :return:
        A list of strings containing the documentation block entries