Classes
NodeVisitor
4
▼
Walk a Kida AST calling ``visit_<Type>`` methods on each node.
For every node encountered, ``visit…
NodeVisitor
4
▼
Walk a Kida AST callingvisit_<Type>methods on each node.
For every node encountered,visit() checks for a visit_<Type>
method (where<Type> is type(node).__name__) and calls it.
If no specific method exists,generic_visit()is called, which
visits all child nodes.
Subclasses overridevisit_<Type>to handle specific node types.
Callself.generic_visit(node)inside a handler to also visit children.
Attributes
| Name | Type | Description |
|---|---|---|
_dispatch_cache |
ClassVar[dict[type, Any]]
|
— |
Methods
visit
1
Any
▼
Dispatch to ``visit_`` or ``generic_visit``.
visit
1
Any
▼
def visit(self, node: Node) -> Any
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
Any
generic_visit
1
▼
Visit all child nodes (default handler).
generic_visit
1
▼
def generic_visit(self, node: Node) -> None
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Internal Methods 1 ▼
__init_subclass__
1
▼
__init_subclass__
1
▼
def __init_subclass__(cls, **kwargs: Any) -> None
Parameters
| Name | Type | Description |
|---|---|---|
**kwargs |
— |
NodeTransformer
7
▼
Walk a Kida AST and rebuild nodes when ``visit_<Type>`` returns a replacement.
Similar to ``NodeVi…
NodeTransformer
7
▼
Walk a Kida AST and rebuild nodes whenvisit_<Type>returns a replacement.
Similar toNodeVisitorbut each handler returns a (possibly new) node.
generic_visit()visits all child fields; if any child changes, the
parent node is reconstructed viadataclasses.replace().
Subclasses overridevisit_<Type>to transform specific node types.
ReturningNonefrom a handler removes the node from its parent's body.
Attributes
| Name | Type | Description |
|---|---|---|
_dispatch_cache |
ClassVar[dict[type, Any]]
|
— |
Methods
visit
1
Node | None
▼
Dispatch to ``visit_`` or ``generic_visit``.
visit
1
Node | None
▼
def visit(self, node: Node) -> Node | None
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
Node | None
generic_visit
1
Node
▼
Rebuild *node* if any child field changed after visiting.
generic_visit
1
Node
▼
def generic_visit(self, node: Node) -> Node
Parameters
| Name | Type | Description |
|---|---|---|
node |
— |
Returns
Node
Internal Methods 4 ▼
__init_subclass__
1
▼
__init_subclass__
1
▼
def __init_subclass__(cls, **kwargs: Any) -> None
Parameters
| Name | Type | Description |
|---|---|---|
**kwargs |
— |
_visit_field
1
Any
▼
Visit a single field value, returning updated value if changed.
_visit_field
1
Any
▼
def _visit_field(self, value: Any) -> Any
Parameters
| Name | Type | Description |
|---|---|---|
value |
— |
Returns
Any
_visit_sequence
1
Sequence[Any]
▼
Visit a sequence, handling nested tuples (elif_, cases, etc.).
_visit_sequence
1
Sequence[Any]
▼
def _visit_sequence(self, seq: Sequence[Any]) -> Sequence[Any]
Parameters
| Name | Type | Description |
|---|---|---|
seq |
— |
Returns
Sequence[Any]
_visit_dict
1
dict[str, Any]
▼
Visit dict values (kwargs, slots, embed blocks, etc.).
_visit_dict
1
dict[str, Any]
▼
def _visit_dict(self, mapping: dict[str, Any]) -> dict[str, Any]
Parameters
| Name | Type | Description |
|---|---|---|
mapping |
— |
Returns
dict[str, Any]