MakeTuple#
- class hugr.ops.MakeTuple(_types: list[Type] | None = None, num_out: int = 1)[source]#
Bases:
AsExtOp
,_PartialOp
Operation to create a tuple from a sequence of wires.
Methods
Cached signature of the operation, if there is one.
Load from a
ExtOp
operation.Name of the operation.
The
tys.OpDef
for this 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.
Type arguments of the operation.
Attributes
ExtOp
operation that this type represents.num_out
If set, the types of the tuple elements.
- exception InvalidExtOp(msg: str)#
Bases:
Exception
Extension operation does not match the expected type.
- with_traceback()#
Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.
- cached_signature() FunctionType | None [source]#
Cached signature of the operation, if there is one.
Used by
op_def
, so must be deterministic.
- property ext_op: ExtOp#
ExtOp
operation that this type represents.Computed once using
op_def()
type_args()
andtype_args()
. Each of those methods should be deterministic.
- classmethod from_ext(ext_op: ExtOp) Self | None #
Load from a
ExtOp
operation.By default assumes the type of cls is a singleton, and compares the result of
to_ext()
with the given ext_op.If successful, returns the singleton, else None.
Non-singleton types should override this method.
- Raises:
InvalidCustomOp – If the given ext_op does not match the expected one for a
given extension/operation name. –
- op_def() ext.OpDef [source]#
The
tys.OpDef
for this operation.Used by
ext_op
, so must be deterministic.
- outer_signature() FunctionType #
The external signature of this operation. Defines the valid external connectivity of the node the operation belongs to.
- port_kind(port: InPort | OutPort) ValueKind | ConstKind | FunctionKind | CFKind | OrderKind #
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
- type_args() list[TypeArg] [source]#
Type arguments of the operation.
Used by
op_def
, so must be deterministic.
- property types: list[Type]#
If set, the types of the tuple elements.
- Raises:
IncompleteOp – If the types have not been set.