Helpers¶
Helper methods for mapping Qiskit classes to IonQ REST API compatible values.
- qiskit_ionq.helpers.compress_dict_to_metadata_string(metadata_dict)[source]¶
Convert a dict to a compact string format (dumped, gzipped, base64 encoded) for storing in IonQ API metadata
- Parameters:
metadata_dict (dict) – a dict with metadata relevant to building the results object on a returned job.
- Returns:
encoded string
- Return type:
str
- Raises:
IonQMetadataStringError – If the base64 encoded json.dumps’d dict is greater than 400 characters.
- qiskit_ionq.helpers.decompress_metadata_string_to_dict(input_string)[source]¶
Convert compact string format (dumped, gzipped, base64 encoded) from IonQ API metadata back into a dict relevant to building the results object on a returned job.
- Parameters:
input_string (str) – compressed string format of metadata dict
- Returns:
decompressed metadata dict
- Return type:
dict
- qiskit_ionq.helpers.get_user_agent()[source]¶
Generates the user agent string which is helpful in identifying different tools in the internet. Valid user-agent ionq_client header that indicates the request is from qiskit_ionq along with the system, os, python,libraries details.
- Returns:
A string of generated user agent.
- Return type:
str
- qiskit_ionq.helpers.qiskit_circ_to_ionq_circ(input_circuit, gateset='qis')[source]¶
Build a circuit in IonQ’s instruction format from qiskit instructions.
Attention
This function ignores the following compiler directives: *
barrier
- Parameters:
input_circuit (
qiskit.circuit.QuantumCircuit
) – A Qiskit quantum circuit.gateset (string) – Set of gates to target. It can be QIS (required transpilation pass in IonQ backend, which is sent standard gates) or native (only IonQ native gates are allowed, in the future we may provide transpilation to these gates in Qiskit).
- Raises:
IonQGateError – If an unsupported instruction is supplied.
IonQMidCircuitMeasurementError – If a mid-circuit measurement is detected.
- Returns:
A list of instructions in a converted dict format. int: The number of measurements. dict: The measurement map from qubit number to classical bit number.
- Return type:
list[dict]
- qiskit_ionq.helpers.qiskit_to_ionq(circuit, backend, passed_args=None, extra_query_params=None)[source]¶
Convert a Qiskit circuit to a IonQ compatible dict.
- Parameters:
circuit (
qiskit.circuit.QuantumCircuit
) – A Qiskit quantum circuit.backend (
qiskit_ionq.IonQBackend
) – The IonQ backend.passed_args (dict) – Dictionary containing additional passed arguments, eg. shots.
extra_query_params (dict) – Specify any parameters to include in the request
- Returns:
A string / JSON-serialized dictionary with IonQ API compatible values.
- Return type:
str