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:
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, extra_metadata=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

  • extra_metadata (dict) – Specify any additional metadata to include.

Returns:

A string / JSON-serialized dictionary with IonQ API compatible values.

Return type:

str