Module¶
- class hugr.build.function.Module(hugr: Hugr | None = None)[source]¶
Bases:
DefinitionBuilder
[Module
]Build a top-level HUGR module.
Examples
>>> m = Module() >>> m.hugr.entrypoint_op() Module()
Methods
Add a type alias declaration.
Add a type alias definition.
Add a static constant to the graph.
Add a function declaration to the module.
Start building a function definition in the graph.
Define the 'main' function in the module.
Allows access to the Module at the root of the Hugr (outside the scope of this builder, perhaps outside the entrypoint).
Attributes
Metadata associated with this module.
hugr
- add_const(value: val.Value, parent: ToNode | None = None) Node ¶
Add a static constant to the graph.
- Parameters:
value – The constant value to add.
parent – The parent node of the constant. Defaults to the entrypoint node.
- Returns:
The node holding the
Const
operation.
Example
>>> dfg = Dfg() >>> const_n = dfg.add_const(val.TRUE) >>> dfg.hugr[const_n].op Const(TRUE)
- declare_function(name: str, signature: PolyFuncType) Node [source]¶
Add a function declaration to the module.
- Parameters:
name – The name of the function.
signature – The (polymorphic) signature of the function.
- Returns:
The node representing the function declaration.
Examples
>>> from hugr.function import Module >>> m = Module() >>> sig = tys.PolyFuncType([], tys.FunctionType.empty()) >>> m.declare_function("f", sig) Node(1)
- define_function(name: str, input_types: TypeRow, output_types: TypeRow | None = None, type_params: list[TypeParam] | None = None) Function [source]¶
Start building a function definition in the graph.
- Parameters:
name – The name of the function.
input_types – The input types for the function.
output_types – The output types for the function. If not provided, it will be inferred after the function is built.
type_params – The type parameters for the function, if polymorphic.
parent – The parent node of the constant. Defaults to the entrypoint node.
- Returns:
The new function builder.
- define_main(input_types: TypeRow) Function [source]¶
Define the ‘main’ function in the module. See
define_function()
.