iqm.pulse.builder.build_quantum_ops

iqm.pulse.builder.build_quantum_ops#

iqm.pulse.builder.build_quantum_ops(ops)#

Builds the table of known quantum operations.

Hardcoded canonical ops table is extended by the ones in ops. In case of name collisions, the content of ops takes priority over the defaults, with the following caveats:

  • canonical implementation names cannot be redefined, and

  • for canonical operations you can only change implementations and defaults_for_locus.

Parameters:

ops (dict[str, dict[str, Any]]) – Contents of the gate_definitions section defining the quantum operations in the configuration YAML file. Implementation names must be mapped to either exposed GateImplementation class names, or actual GateImplementation classes. NOTE: Modified by the function.

Returns:

Mapping from quantum operation names to their definitions.

Raises:
  • ValueError – Requested implementation class is not exposed.

  • ValueError – A canonical implementation name is being redefined.

  • ValueError – Locus default references an undefined implementation.

  • ValueError – Operation attributes don’t match defaults or are invalid.

Return type:

dict[str, QuantumOp]