Yield each section line.

    Note:
        Depending on how it is wrapped, a section line can take up more than
        one physical line.

    Args:
        name: The name of the section to extract (e.g. "Usage").
        source: The usage string to parse.

    Returns:
        A list containing each line, de-wrapped by whitespace from the source
        code.
        If the section is defined multiple times in the source code, all lines
        from all sections with that name will be returned.

def _parse_section(name, source):
    # type: (str, str) -> List[str]
    """Yield each section line.

    Note:
        Depending on how it is wrapped, a section line can take up more than
        one physical line.

    Args:
        name: The name of the section to extract (e.g. "Usage").
        source: The usage string to parse.

    Returns:
        A list containing each line, de-wrapped by whitespace from the source
        code.
        If the section is defined multiple times in the source code, all lines
        from all sections with that name will be returned.
    """
    section = textwrap.dedent(_get_section(name, source)[7:])
    commands = []  # type: List[str]
    for line in section.splitlines():
        if not commands or line[:1].isalpha() and line[:1].islower():
            commands.append(line)
        else:
            commands[-1] = '{} {}'.format(commands[-1].strip(), line.strip())
    return commands