i_listings: list[list[list[PieceListing]]] = [[[]]]
for line in cls.lines_of(path):
if not line.startswith(CHAR_SPACE):
- id_, is_in_str, description = cls.tokify(line, 3)
- assert is_in_str in {CHAR_IN, CHAR_OUT, CHAR_INACTIVE}
- is_in = (None if is_in_str == CHAR_INACTIVE
- else is_in_str == CHAR_IN)
+ id_, metadata = cls.tokify(line, 2)
+ assert metadata
+ assert metadata[0] in {CHAR_IN, CHAR_OUT, CHAR_INACTIVE}
+ is_in = (None if metadata[0] == CHAR_INACTIVE
+ else metadata[0] == CHAR_IN)
i_listings = [[[]]]
- collected[id_] = is_in, description, i_listings
+ collected[id_] = is_in, metadata[1:], i_listings
elif line[1:2] == CHAR_SEPARATOR_COLUMN:
i_listings[-1] += [[]]
elif line[1:2] == CHAR_SEPARATOR_PAGE:
) -> str:
is_in_str = (CHAR_INACTIVE if self.is_in is None
else (CHAR_IN if self.is_in else CHAR_OUT))
- return (f'\n{self.id_} {is_in_str} {self.description}\n'
+ return (f'\n{self.id_} {is_in_str}{self.description}\n'
+ self._format_paginated(lambda count, p_id, comment:
f' {count:2} {p_id:>7} {comment}'))