def from_lines(cls, lines: tuple[str, ...]) -> tuple['_DatBlock', ...]:
'Sequence of DatBlocks parsed from lines.'
i_block: _DatBlock = cls()
+ i_block_indented = False
for dat_line in (_DatLine(line.rstrip()) for line in lines):
- if (not dat_line.len_indent) and i_block.indented:
+ line_indented = bool(dat_line.len_indent)
+ if (not line_indented) and i_block_indented:
i_block.next = _DatBlock()
i_block = i_block.next
+ i_block_indented = False
+ i_block_indented = i_block_indented or line_indented
i_block.add((dat_line, ))
blocks = [i_block]
while i_block.prev:
blocks += [i_block]
return tuple(reversed(blocks))
- @property
- def indented(self) -> bool:
- 'Does the block contain any indented lines?'
- return bool([line for line in self.lines if line.len_indent])
-
@property
@_LinesBlock._cache('gap_lines')
def gap_lines(self) -> tuple[_DatLine, ...]: