Pulla#

Module: iqm.pulla.pulla

class iqm.pulla.pulla.Pulla(iqm_server_url, *, quantum_computer=None, token=None, tokens_file=None, client_signature=None)#

Bases: object

Client providing pulse level access to IQM’s quantum computers.

Conceptually, represents a connection to a remote quantum computer. Can create a circuit-to-pulse compiler instance ready to be used with the connected quantum computer.

Parameters:
  • iqm_server_url (str) – URL for accessing the IQM Server. Has to start with http or https.

  • quantum_computer (str | None) – ID or alias of the quantum computer to connect to, if the IQM Server instance controls more than one.

  • token (str | None) – Long-lived authentication token in plain text format. If token is given no other user authentication parameters should be given.

  • tokens_file (str | None) – Path to a tokens file used for authentication. If tokens_file is given no other user authentication parameters should be given.

  • client_signature (str | None) – String that the client adds to User-Agent header of requests it sends to the server. The signature is appended to Pulla’s own version information and is intended to carry additional version information, for example the version information of the caller.

Methods

get_calibration_stash

Contents of a calibration set as a stash object.

get_chip_label

QPU label of the current quantum computer.

get_chip_topology

Chip topology of the current quantum computer.

get_job

Get the current status and metadata of the job.

get_standard_compiler

Create a compiler instance for the connected quantum computer.

submit_playlist

Submit a run definition for execution.

get_standard_compiler(loading_rules=None, *, exa_style_pp=True, controller_mapping=None, gate_definitions=None)#

Create a compiler instance for the connected quantum computer.

Parameters:
  • loading_rules (list[Callable[[str], ObservationBase | None]] | None) – Observation loading rules. If None, will use the current default calibration set.

  • exa_style_pp (bool) – Whether to do EXA-style dataset post-processing by default.

  • controller_mapping (dict[str, dict[str, str]] | None) – Dictionary that maps physical QPU component names to their device controller names. The dictionary is of the form: {<component_name>: {<operation_name>: <controller name>}}, where operation is one of the following: “drive”, “readout”, “flux” (not all components have all operations supported). If None, use the default controller mapping for the connected quantum computer.

  • gate_definitions (dict[str, QuantumOp] | None) – Names of quantum operations mapped to their definitions, see QuantumOp. If None, use the default quantum operations.

Returns:

The compiler object.

Return type:

Compiler

get_chip_label()#

QPU label of the current quantum computer.

Return type:

str

get_chip_topology()#

Chip topology of the current quantum computer.

Return type:

ChipTopology

submit_playlist(run_definition, *, context, use_timeslot=False)#

Submit a run definition for execution.

Parameters:
Return type:

PullaJob

get_job(job_id)#

Get the current status and metadata of the job.

Parameters:

job_id (UUID) – ID of the job to query.

Returns:

JobData object.

Return type:

JobData

get_calibration_stash(calibration_set_id='default')#

Contents of a calibration set as a stash object.

Parameters:

calibration_set_id (str | UUID | Literal['default'])

Return type:

PullaStash

Inheritance

Inheritance diagram of iqm.pulla.pulla.Pulla