Classes
BaseVisitor
33
▼
Base AST visitor with match-based dispatch.
Subclass and override ``visit_*`` methods for node typ…
BaseVisitor
33
▼
Base AST visitor with match-based dispatch.
Subclass and overridevisit_*methods for node types you care about.
Unhandled node types fall through tovisit_default. Children are
walked automatically after thevisit_*call.
Type parameterT is the return type of visit methods (use None
for side-effect-only visitors).
Methods
visit
1
T
▼
Dispatch to the appropriate ``visit_*`` method.
Walks children automatically a…
visit
1
T
▼
def visit(self, node: Node) -> T
Dispatch to the appropriatevisit_*method.
Walks children automatically after the visit method returns.
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_default
1
T
▼
Called for node types without a specific ``visit_*`` method.
Override this for…
visit_default
1
T
▼
def visit_default(self, node: Node) -> T
Called for node types without a specificvisit_*method.
Override this for catch-all behavior. Default returns None
(suitable forBaseVisitor[None]).
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_document
1
T
▼
visit_document
1
T
▼
def visit_document(self, node: Document) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_heading
1
T
▼
visit_heading
1
T
▼
def visit_heading(self, node: Heading) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_paragraph
1
T
▼
visit_paragraph
1
T
▼
def visit_paragraph(self, node: Paragraph) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_fenced_code
1
T
▼
visit_fenced_code
1
T
▼
def visit_fenced_code(self, node: FencedCode) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_indented_code
1
T
▼
visit_indented_code
1
T
▼
def visit_indented_code(self, node: IndentedCode) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_block_quote
1
T
▼
visit_block_quote
1
T
▼
def visit_block_quote(self, node: BlockQuote) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_list
1
T
▼
visit_list
1
T
▼
def visit_list(self, node: List) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_list_item
1
T
▼
visit_list_item
1
T
▼
def visit_list_item(self, node: ListItem) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_thematic_break
1
T
▼
visit_thematic_break
1
T
▼
def visit_thematic_break(self, node: ThematicBreak) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_html_block
1
T
▼
visit_html_block
1
T
▼
def visit_html_block(self, node: HtmlBlock) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_directive
1
T
▼
visit_directive
1
T
▼
def visit_directive(self, node: Directive) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_table
1
T
▼
visit_table
1
T
▼
def visit_table(self, node: Table) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_table_row
1
T
▼
visit_table_row
1
T
▼
def visit_table_row(self, node: TableRow) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_table_cell
1
T
▼
visit_table_cell
1
T
▼
def visit_table_cell(self, node: TableCell) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_math_block
1
T
▼
visit_math_block
1
T
▼
def visit_math_block(self, node: MathBlock) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_footnote_def
1
T
▼
visit_footnote_def
1
T
▼
def visit_footnote_def(self, node: FootnoteDef) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_text
1
T
▼
visit_text
1
T
▼
def visit_text(self, node: Text) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_emphasis
1
T
▼
visit_emphasis
1
T
▼
def visit_emphasis(self, node: Emphasis) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_strong
1
T
▼
visit_strong
1
T
▼
def visit_strong(self, node: Strong) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_strikethrough
1
T
▼
visit_strikethrough
1
T
▼
def visit_strikethrough(self, node: Strikethrough) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_link
1
T
▼
visit_link
1
T
▼
def visit_link(self, node: Link) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_image
1
T
▼
visit_image
1
T
▼
def visit_image(self, node: Image) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_code_span
1
T
▼
visit_code_span
1
T
▼
def visit_code_span(self, node: CodeSpan) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_line_break
1
T
▼
visit_line_break
1
T
▼
def visit_line_break(self, node: LineBreak) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_soft_break
1
T
▼
visit_soft_break
1
T
▼
def visit_soft_break(self, node: SoftBreak) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_html_inline
1
T
▼
visit_html_inline
1
T
▼
def visit_html_inline(self, node: HtmlInline) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_role
1
T
▼
visit_role
1
T
▼
def visit_role(self, node: Role) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_math
1
T
▼
visit_math
1
T
▼
def visit_math(self, node: Math) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
visit_footnote_ref
1
T
▼
visit_footnote_ref
1
T
▼
def visit_footnote_ref(self, node: FootnoteRef) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
Internal Methods 2 ▼
_dispatch
1
T
▼
Match-based dispatch to visit_* methods.
_dispatch
1
T
▼
def _dispatch(self, node: Node) -> T
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
T
_walk_children
1
▼
Recursively visit child nodes.
_walk_children
1
▼
def _walk_children(self, node: Node) -> None
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Functions
transform
2
Document
▼
Apply a function to every node in the AST, returning a new tree.
The function …
transform
2
Document
▼
def transform(doc: Document, fn: Callable[[Node], Node]) -> Document
Apply a function to every node in the AST, returning a new tree.
The functionfnis called bottom-up: children are transformed first,
then the parent is transformed with its new children. This ensuresfn
always receives nodes with already-transformed children.
Since all nodes are frozen dataclasses, this produces a new immutable tree. The original tree is untouched.
Parameters
| Name | Type | Description |
|---|---|---|
doc |
Document |
The document to transform. |
fn |
Callable[[Node], Node] |
Function that receives a node and returns a (possibly new) node. Return the same node to keep it unchanged. |
Returns
Document
_transform_node
2
Node
▼
Transform a single node bottom-up: children first, then self.
_transform_node
2
Node
▼
def _transform_node(node: Node, fn: Callable[[Node], Node]) -> Node
Parameters
| Name | Type | Description |
|---|---|---|
node |
Node |
|
fn |
Callable[[Node], Node] |
Returns
Node
_transform_children
2
Node
▼
Produce a new node with children transformed, or return the same node if no chi…
_transform_children
2
Node
▼
def _transform_children(node: Node, fn: Callable[[Node], Node]) -> Node
Produce a new node with children transformed, or return the same node if no children.
Parameters
| Name | Type | Description |
|---|---|---|
node |
Node |
|
fn |
Callable[[Node], Node] |
Returns
Node