Skip to content

Results API

qm.results.base_streaming_result_fetcher.BaseStreamingResultFetcher

job_id: str property

The job id this result came from

name: str property

The name of result this handle is connected to

stream_metadata: Optional[StreamMetadata] property

Provides the StreamMetadata of this stream.

Metadata currently includes the values and shapes of the automatically identified loops in the program.

count_so_far

also len(handle)

RETURNS DESCRIPTION
int

The number of values this result has so far

fetch_all

Fetch a result from the current result stream saved in server memory. The result stream is populated by the save() and save_all() statements. Note that if save_all() statements are used, calling this function twice may give different results.

PARAMETER DESCRIPTION
flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
Optional[numpy.typing.NDArray[numpy.generic]]

all result of current result stream

has_dataloss

if there was data loss during job execution

save_to_store

Saving to persistent store the NPY data of this result handle

PARAMETER DESCRIPTION
writer

An optional writer to override the store defined in QuantumMachinesManager

TYPE: Optional[Union[BinaryIO, str]] DEFAULT: None

flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
int

The number of items saved

strict_fetch

Fetch a result from the current result stream saved in server memory. The result stream is populated by the save() and save_all() statements. Note that if save_all() statements are used, calling this function twice with the same item index may give different results.

PARAMETER DESCRIPTION
item

The index of the result in the saved results stream.

TYPE: Union[int, slice]

flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
numpy.typing.NDArray[numpy.generic]

a single result if item is integer or multiple results if item is Python slice object.

Example
res.fetch(0)         #return the item in the top position
res.fetch(1)         #return the item in position number 2
res.fetch(slice(1,6))# return items from position 1 to position 6 (exclusive)
                     # same as res.fetch_all()[1:6]

wait_for_all_values

Wait until we know all values were processed for this named result

PARAMETER DESCRIPTION
timeout

Timeout for waiting in seconds

TYPE: float DEFAULT: float('infinity')

RETURNS DESCRIPTION
bool

True if job finished successfully and False if job has

bool

closed before done

wait_for_values

Wait until we know at least count values were processed for this named result

PARAMETER DESCRIPTION
count

The number of items to wait for

TYPE: int DEFAULT: 1

timeout

Timeout for waiting in seconds

TYPE: float DEFAULT: float('infinity')

qm.results.streaming_result_fetcher.StreamingResultFetcher

Bases: Mapping

Access to the results of a QmJob

This object is created by calling QmJob.result_handles

Assuming you have an instance of StreamingResultFetcher:

    job_results: StreamingResultFetcher
This object is iterable:

    for name, handle in job_results:
        print(name)

Can detect if a name exists:

if "somename" in job_results:
    print("somename exists!")
    handle = job_results.get("somename")

get

Get a handle to a named result from stream_processing

PARAMETER DESCRIPTION
name

The named result using in stream_processing

TYPE: str

RETURNS DESCRIPTION
Optional[BaseStreamingResultFetcher]

A handle object to the results MultipleNamedJobResult or SingleNamedJobResult or None if the named results in unknown

get_debug_data

RETURNS DESCRIPTION
None

debugging data to report to QM

is_processing

Check if the job is still processing results

RETURNS DESCRIPTION
bool

True if results are still being processed, False otherwise

items

Returns a view, in which the first item is the name of the result and the second is the result

keys

Returns a view of the names of the results

save_to_store

Save all results to store (file system by default) in a single NPZ file

PARAMETER DESCRIPTION
writer

An optional writer to be used instead of the pre- populated store passed to qm.quantum_machines_manager.QuantumMachinesManager

TYPE: Optional[BinaryIO] DEFAULT: None

flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

values

Returns a view of the results

wait_for_all_values

Wait until we know all values were processed for all named results

PARAMETER DESCRIPTION
timeout

Timeout for waiting in seconds

TYPE: Optional[float] DEFAULT: None

RETURNS DESCRIPTION
bool

True if all finished successfully, False if any result was closed before done

qm.results.single_streaming_result_fetcher.SingleStreamingResultFetcher

Bases: BaseStreamingResultFetcher

A handle to a result of a pipeline terminating with save

fetch

Fetch a single result from the current result stream saved in server memory. The result stream is populated by the save().

PARAMETER DESCRIPTION
item

ignored

TYPE: Union[int, slice]

flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
Optional[numpy.typing.NDArray[numpy.generic]]

the current result

Example
res.fetch() # return the item in the top position

fetch_all

Fetch a result from the current result stream saved in server memory. The result stream is populated by the save() and save_all() statements. Note that if save_all() statements are used, calling this function twice may give different results.

PARAMETER DESCRIPTION
flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
Optional[numpy.typing.NDArray[numpy.generic]]

all result of current result stream

qm.results.multiple_streaming_result_fetcher.MultipleStreamingResultFetcher

Bases: BaseStreamingResultFetcher

A handle to a result of a pipeline terminating with save_all

fetch

Fetch a result from the current result stream saved in server memory. The result stream is populated by the save() and save_all() statements. Note that if save_all() statements are used, calling this function twice with the same item index may give different results.

PARAMETER DESCRIPTION
item

The index of the result in the saved results stream.

TYPE: Union[int, slice]

flat_struct

results will have a flat structure - dimensions will be part of the shape and not of the type

TYPE: bool DEFAULT: False

RETURNS DESCRIPTION
Optional[numpy.typing.NDArray[numpy.generic]]

a single result if item is integer or multiple results if item is Python slice object.

Example
res.fetch(0)         # return the item in the top position
res.fetch(1)         # return the item in position number 2
res.fetch(slice(1,6))# return items from position 1 to position 6 (exclusive)
                     # same as res.fetch_all()[1:6]

save_to_store

Saving to persistent store the NPY data of this result handle

PARAMETER DESCRIPTION
writer

An optional writer to override the store defined in QuantumMachinesManager

TYPE: Optional[Union[BinaryIO, str]] DEFAULT: None

RETURNS DESCRIPTION
int

The number of items saved

qm._results.JobResults = StreamingResultFetcher module-attribute

qm._results.MultipleNamedJobResult = MultipleStreamingResultFetcher module-attribute

qm._results.SingleNamedJobResult = SingleStreamingResultFetcher module-attribute