app.model.CompileRequest
This module defines the data models for compile requests. It provides classes to model metadata, node data, and the complete compile request.
Module Contents
- class app.model.CompileRequest.OptimizeSettings
Abstract base class providing optimization settings.
- class app.model.CompileRequest.MetaData(/, **data: Any)
Contains metadata for a compile request, including versioning and optimization preferences.
- Parameters:
data (Any)
- optimizeWidth: Annotated[int, Field(gt=0)] | None = None
Optimization setting for reducing circuit width (optional).
- optimizeDepth: Annotated[int, Field(gt=0)] | None = None
Optimization setting for reducing circuit depth (optional).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.BaseNode(/, **data: Any)
Abstract base class for all node types used in a compile request.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.ImplementationNode(/, **data: Any)
Node containing a user-defined OpenQASM implementation.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.EncodeValueNode(/, **data: Any)
Node representing quantum state encoding from classical values.
- Parameters:
data (Any)
- encoding: Literal['amplitude', 'angle', 'basis', 'custom', 'matrix', 'schmidt']
Encoding scheme used (e.g. “amplitude”, “basis”, etc.).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.PrepareStateNode(/, **data: Any)
Node for preparing known quantum states like Bell or GHZ.
- Parameters:
data (Any)
- quantumState: Literal['ϕ+', 'ϕ-', 'ψ+', 'ψ-', 'custom', 'ghz', 'uniform', 'w']
Type of quantum state to prepare (e.g. “ψ+”, “ghz”).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.SplitterNode(/, **data: Any)
Node that splits qubits into multiple branches.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.MergerNode(/, **data: Any)
Node that merges multiple input branches into a single stream.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.MeasurementNode(/, **data: Any)
Node performing quantum measurement on specified qubit indices.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.QubitNode(/, **data: Any)
Node representing qubit allocation.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.GateNode(/, **data: Any)
Node representing application of a quantum gate.
- Parameters:
data (Any)
- gate: app.openqasm3.stdgates.OneQubitGate | app.openqasm3.stdgates.TwoQubitGate | app.openqasm3.stdgates.ThreeQubitGate | Literal['cnot', 'toffoli']
The gate to apply (e.g., “x”, “cnot”, etc.).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.ParameterizedGateNode(/, **data: Any)
Node representing a gate that requires a parameter (e.g., angle rotation).
- Parameters:
data (Any)
- gate: app.openqasm3.stdgates.OneQubitGateWithAngle | app.openqasm3.stdgates.TwoQubitGateWithParam | app.openqasm3.stdgates.TwoQubitGateWithAngle
The parameterized gate to apply.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.BitLiteralNode(/, **data: Any)
Node representing a fixed classical bit value (0 or 1).
- Parameters:
data (Any)
- value: Literal[0, 1]
Bit value.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.BoolLiteralNode(/, **data: Any)
Node representing a boolean literal.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.IntLiteralNode(/, **data: Any)
Node representing an integer literal.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.FloatLiteralNode(/, **data: Any)
Node representing a floating-point literal.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.AncillaNode(/, **data: Any)
Node allocating ancillary qubits for temporary computation.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.NestedBlock(/, **data: Any)
Represents a subgraph or code block used inside control flow nodes.
- Parameters:
data (Any)
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.IfThenElseNode(/, **data: Any)
Node representing conditional execution.
- Parameters:
data (Any)
- thenBlock: NestedBlock
Code block executed if the condition is true.
- elseBlock: NestedBlock
Code block executed if the condition is false.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.RepeatNode(/, **data: Any)
Node representing a repeat loop structure.
- Parameters:
data (Any)
- block: NestedBlock
Code block to repeat.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.OperatorNode(/, **data: Any)
Node representing a classical operation (arithmetic, bitwise, comparison).
- Parameters:
data (Any)
- operator: Literal['+', '-', '*', '/', '**', '|', '&', '~', '^', '<', '<=', '>', '>=', '==', '!=', 'min', 'max']
Type of operator (e.g., “+”, “&”, “==”).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.Edge(/, **data: Any)
Represents a connection between two ports of nodes.
- Parameters:
data (Any)
- source: tuple[Annotated[str, Field(description='Source node Id')], Annotated[int, Field(ge=0, description='Output index of source node')]]
Tuple of (node_id, output_index).
- target: tuple[Annotated[str, Field(description='Target node id')], Annotated[int, Field(ge=0, description='Input index of target node')]]
Tuple of (node_id, input_index).
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.CompileRequest(/, **data: Any)
Top-level object representing a full graph-based quantum compile request.
- Parameters:
data (Any)
- nodes: list[Annotated[Node, Field(discriminator='type')]]
List of all nodes forming the program graph.
- model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class app.model.CompileRequest.SingleInsertMetaData(/, **data: Any)
Models the metadata of a single insert.
- Parameters:
data (Any)
- class app.model.CompileRequest.SingleInsert(/, **data: Any)
Single insertion of an implementation for the enricher.
- Parameters:
data (Any)
- class app.model.CompileRequest.InsertRequest(/, **data: Any)
Models a request for an implementation insert into the enricher.
- Parameters:
data (Any)