(lines: List[str])
return blocks
Parse and return all possible blocks, popping off the start of `lines`.

    :param lines: list of lines
    :return: list of blocks, where each block is a list of lines
Parse and return all possible blocks, popping off the start of `lines`.
Parse and return all possible blocks popping off the start of lines .
def parse_blocks(lines: List[str]) -> List[List[str]]:
    """Parse and return all possible blocks, popping off the start of `lines`.

    :param lines: list of lines
    :return: list of blocks, where each block is a list of lines
    """
    blocks = []

    while lines:
        if lines[0] == '':
            lines.pop(0)
        else:
            blocks.append(parse_block(lines))

    return blocks
def parse_blocks ( lines : List [ str ] ) -> List [ List [ str ] ] : blocks = [ ] while lines : if lines [ 0 ] == '' : lines . pop ( 0 ) else : blocks . append ( parse_block ( lines ) ) return blocks