Module

parsing.blocks.table

Table parsing for Patitas parser.

Handles GFM (GitHub Flavored Markdown) table parsing.

Classes

TableParsingMixin 3
Mixin for GFM table parsing. Required Host Attributes: None Required Host Methods: - _parse_i…

Mixin for GFM table parsing.

Required Host Attributes: None

Required Host Methods:

  • _parse_inline(text, location) -> tuple[Inline, ...]

Methods

Internal Methods 3
_try_parse_table 2 Table | None
Try to parse lines as a GFM table. GFM table structure: | Header 1 | Header 2 …
def _try_parse_table(self, lines: list[str], location: SourceLocation) -> Table | None

Try to parse lines as a GFM table.

GFM table structure:

| Header 1 | Header 2 | <- header row |----------|----------| <- delimiter row (required) | Cell 1 | Cell 2 | <- body rows

Returns Table if valid, None if not a table.

Parameters
Name Type Description
lines
location
Returns
Table | None
_parse_table_row 1 list[str] | None
Parse a table row into cells. Returns list of cell contents, or None if not a …
def _parse_table_row(self, line: str) -> list[str] | None

Parse a table row into cells.

Returns list of cell contents, or None if not a valid row.

Parameters
Name Type Description
line
Returns
list[str] | None
_parse_table_delimiter 2 tuple[str | None, ...] |…
Parse table delimiter row and extract alignments. Delimiter format: |:---|:---…
def _parse_table_delimiter(self, line: str, expected_cols: int) -> tuple[str | None, ...] | None

Parse table delimiter row and extract alignments.

Delimiter format: |:---|:---:|---:| Returns tuple of alignments ('left', 'center', 'right', None). Returns None if not a valid delimiter row.

Parameters
Name Type Description
line
expected_cols
Returns
tuple[str | None, ...] | None