Example #1
0
def concatenate_circuits(circuit_set: Union[str, List[Circuit]]):
    if isinstance(circuit_set, str):
        circuit_set = load_circuit_set(circuit_set)
    result_circuit = Circuit()
    for circuit in circuit_set:
        result_circuit += circuit
    save_circuit(result_circuit, "result-circuit.json")
Example #2
0
def run_circuitset_and_measure(
    backend_specs: Specs,
    circuitset: str,
    n_samples: Optional[int] = None,
    noise_model: Optional[str] = None,
    device_connectivity: Optional[str] = None,
):

    if isinstance(backend_specs, str):
        backend_specs = json.loads(backend_specs)
    if noise_model is not None:
        backend_specs["noise_model"] = load_noise_model(noise_model)
    if device_connectivity is not None:
        backend_specs["device_connectivity"] = load_circuit_connectivity(
            device_connectivity)

    circuit_set = load_circuit_set(circuitset)
    backend = create_object(backend_specs)

    measurements_set = backend.run_circuitset_and_measure(circuit_set,
                                                          n_samples=n_samples)
    list_of_measurements = [
        measurement.bitstrings for measurement in measurements_set
    ]
    save_list(list_of_measurements, "measurements-set.json")
Example #3
0
    def test_batch_circuits_all_objects_circuit_set_is_artifact(
            self, input_circuits, input_circuit_set_filename):
        # Given
        expected_circuit_set_filename = "circuit-set.json"
        expected_circuit_set = load_circuit_set(input_circuit_set_filename)
        for circuit in input_circuits:
            expected_circuit_set.append(copy.deepcopy(circuit))

        # When
        batch_circuits(input_circuits, circuit_set=input_circuit_set_filename)

        # Then
        try:
            circuit_set = load_circuit_set(expected_circuit_set_filename)
            assert circuit_set == expected_circuit_set
        finally:
            remove_file_if_exists(expected_circuit_set_filename)
Example #4
0
    def test_batch_circuits_all_objects_no_circuit_set(self, input_circuits):
        # Given
        expected_circuit_set_filename = "circuit-set.json"
        expected_circuit_set = copy.deepcopy(input_circuits)

        # When
        batch_circuits(input_circuits)

        # Then
        try:
            circuit_set = load_circuit_set(expected_circuit_set_filename)
            assert circuit_set == expected_circuit_set
        finally:
            remove_file_if_exists(expected_circuit_set_filename)
Example #5
0
def batch_circuits(
    circuits: List[Union[str, Circuit]],
    circuit_set: Optional[Union[str, List[Circuit]]] = None,
):
    if circuit_set is None:
        circuit_set = []
    else:
        if isinstance(circuit_set, str):
            circuit_set = load_circuit_set(circuit_set)

    for circuit in circuits:
        if isinstance(circuit, str):
            circuit = load_circuit(circuit)
        circuit_set.append(circuit)

    save_circuit_set(circuit_set, "circuit-set.json")
Example #6
0
    def test_batch_circuits_all_artifacts_no_circuit_set(
            self, input_circuits_filenames):
        # Given
        expected_circuit_set_filename = "circuit-set.json"
        expected_circuit_set = []
        for circuit_filename in input_circuits_filenames:
            expected_circuit_set.append(load_circuit(circuit_filename))

        # When
        batch_circuits(input_circuits_filenames)

        # Then
        try:
            circuit_set = load_circuit_set(expected_circuit_set_filename)
            assert circuit_set == expected_circuit_set
        finally:
            remove_file_if_exists(expected_circuit_set_filename)
Example #7
0
    def test_concatenate_circuits_artifact_file(self, circuit_set_filename):
        # Given
        expected_concatenated_circuit_filename = "result-circuit.json"

        circuit_set = load_circuit_set(circuit_set_filename)
        expected_concatenated_circuit = Circuit()
        for circuit in copy.deepcopy(circuit_set):
            expected_concatenated_circuit += circuit

        # When
        concatenate_circuits(circuit_set_filename)

        # Then
        try:
            concatenated_circuit = load_circuit(expected_concatenated_circuit_filename)
            assert concatenated_circuit.gates == expected_concatenated_circuit.gates
        finally:
            remove_file_if_exists(expected_concatenated_circuit_filename)
Example #8
0
def create_circuit_set_from_circuit_artifacts(
    circuit1: str,
    circuit2: str = "None",
    circuit3: str = "None",
    circuit4: str = "None",
    circuit_set: str = "None",
):
    if circuit_set != "None":  # TODO None isse in workflow v1
        circuit_set_object = load_circuit_set(circuit_set)
    else:
        circuit_set_object = []

    object_names = [circuit1, circuit2, circuit3, circuit4]
    for object in object_names:
        if object != "None":
            circuit_set_object.append(load_circuit(object))

    save_circuit_set(circuit_set_object, "circuit-set.json")
Example #9
0
def concatenate_circuits(circuit_set: str):
    circuit_set_object = load_circuit_set(circuit_set)
    result_circuit = Circuit()
    for circuit in circuit_set_object:
        result_circuit += circuit
    save_circuit(result_circuit, "result-circuit.json")