pylasu.transformation package

Submodules

pylasu.transformation.generic_nodes module

class pylasu.transformation.generic_nodes.GenericNode(parent: Node = None)[source]

Bases: Node

A generic AST node. We use it to represent parts of a source tree that we don’t know how to translate yet.

parent: Node = None

pylasu.transformation.transformation module

class pylasu.transformation.transformation.ASTTransformer(issues: List[Issue] = None, allow_generic_node: bool = True)[source]

Bases: object

allow_generic_node: bool = True
as_origin(source: Any) Origin | None[source]
factories: Dict[type, NodeFactory]

Factories that map from source tree node to target tree node.

get_node_factory(node_type: Type[Source]) NodeFactory[Source, Target] | None[source]
get_source(node: Node, source: Any) Any[source]
issues: List[Issue] = []

Additional issues found during the transformation process.

known_classes: Dict[str, Set[type]]
make_nodes(factory: NodeFactory[Source, Target], source: Source) List[Node][source]
process_child(source, node, pd, factory)[source]
register_identity_transformation(node_class: Type[Target])[source]
register_node_factory(source: Type[Source], factory: Callable[[Source, ASTTransformer, NodeFactory[Source, Output]], List[Output]] | Callable[[Source, ASTTransformer, NodeFactory[Source, Output]], Output] | Type[Target]) NodeFactory[Source, Target][source]
set_child(child_node_factory: ChildNodeFactory, source: Any, node: Node, pd: PropertyDescription)[source]
transform(source: Any | None, parent: Node | None = None) Node | None[source]
transform_into_nodes(source: Any | None, parent: Node | None = None) List[Node][source]
class pylasu.transformation.transformation.ChildNodeFactory(name: str, get: Callable[[Source], Any | None], setter: Callable[[Target, Child | None], NoneType])[source]

Bases: Generic[Source, Target, Child]

get: Callable[[Source], Any | None]
name: str
set(node: Target, child: Child | None)[source]
setter: Callable[[Target, Child | None], None]
class pylasu.transformation.transformation.NodeFactory(constructor: Callable[[~Source, ForwardRef('ASTTransformer'), ForwardRef('NodeFactory[Source, Output]')], List[~Output]], children: Dict[str, ForwardRef('ChildNodeFactory[Source, Any, Any]')] = <factory>, finalizer: Callable[[~Source], NoneType] = <function NodeFactory.<lambda> at 0x7f7902b18400>)[source]

Bases: Generic[Source, Output]

children: Dict[str, ChildNodeFactory[Source, Any, Any]]
constructor: Callable[[Source, ASTTransformer, NodeFactory[Source, Output]], List[Output]]
finalizer()
with_child(setter: Callable[[Target, Child | None], None] | PropertyRef, getter: Callable[[Source], Any | None] | PropertyRef, name: str | None = None, target_type: type | None = None) NodeFactory[Source, Output][source]
class pylasu.transformation.transformation.PropertyRef(name: str)[source]

Bases: object

get(node: Node)[source]
name: str
set(node: Node, value)[source]
pylasu.transformation.transformation.ast_transformer(node_class: Type[Node], transformer: ASTTransformer, method_name: str = None)[source]

Decorator to register a function as an AST transformer

pylasu.transformation.transformation.ensure_list(obj)[source]
pylasu.transformation.transformation.get_node_constructor_wrapper(decorated_function)[source]

Module contents