Call¶
- class hugr.ops.Call(signature: tys.PolyFuncType, instantiation: tys.FunctionType | None = None, type_args: Sequence[tys.TypeArg] | None = None)[source]¶
Bases:
_CallOrLoad
,DataflowOp
Call a function inside a dataflow graph. Connects to
FuncDefn
orFuncDecl
operations.- Parameters:
signature – Polymorphic function signature.
instantiation – Concrete function signature. Defaults to None.
type_args – Type arguments for polymorphic function. Defaults to None.
- Raises:
NoConcreteFunc – If the signature is polymorphic and no instantiation is provided.
Methods
Name of the operation.
The external signature of this operation.
Get the kind of the given port.
Get the type of the given dataflow port from the signature of the operation.
Attributes
The number of output ports for this operation.
polymorphic function signature
concrete function signature
type arguments for polymorphic function
- instantiation: FunctionType¶
concrete function signature
- property num_out: int¶
The number of output ports for this operation.
Example
>>> op = Const(val.TRUE) >>> op.num_out 1
- outer_signature() FunctionType [source]¶
The external signature of this operation. Defines the valid external connectivity of the node the operation belongs to.
- Raises:
IncompleteOp – If the operation’s inputs and outputs have not been set.
- port_kind(port: InPort | OutPort) ValueKind | ConstKind | FunctionKind | CFKind | OrderKind [source]¶
Get the kind of the given port.
Example
>>> op = Const(val.TRUE) >>> op.port_kind(OutPort(Node(0), 0)) ConstKind(Bool)
- port_type(port: InPort | OutPort) Type ¶
Get the type of the given dataflow port from the signature of the operation.
Example
>>> op = Input([tys.Bool]) >>> op.port_type(OutPort(Node(0), 0)) Bool
- signature: PolyFuncType¶
polymorphic function signature