spot_result_pb2

spot_result_pb2#

Generated protocol buffer code.

Full path: iqm.data_definitions.common.v1.spot_result_pb2

Protobuf source code#
// Copyright 2019-2025 IQM
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/*
 Spot result declarations
 */

syntax = "proto3";

package iqm.data_definitions.common.v1;

import "iqm/data_definitions/common/v1/observation.proto";

// Describes a numcodec codec:
// https://numcodecs.readthedocs.io/en/stable/abc.html
message NumcodecsConfig {
  oneof config {
    string config_json = 1; 
    // more elegant formats go here, eventually
  }  
}


// A numeric array as raw bytes buffer, with "array header" to
// identify the data type; analogous to numpy's own '.npy' format (see numpy.lib.format).
message NpyArray {

  // np.ndarray.shape; it is permissible to elide a leading shape[0] > 1,
  // which will be implied by length(array_bytes)
  repeated uint64 shape = 1;

  // encodes dtype, as np.dtype.str. cf. numpy.lib.dtype_to_descr.
  // note: encoding of record/named array dtypes currently undefined.
  string dtype_str = 3;

  // whether array_bytes is serialized in Fortran order.
  bool fortran_order = 4;

  // Sequence of numcodecs [1] Codecs configuration JSON used to encode array_bytes.
  // Order is that in which codecs were applied to encode; for decoding, use codecs in reverse order.
  // (Empty list indicates `array_bytes` are the unencoded array buffer.)
  //
  // [1] https://numcodecs.readthedocs.io/en/stable/abc.html
  repeated NumcodecsConfig encode_numcodecs = 5;


  // contents of array buffer in memory, encoded as described by `encode_numcodecs`.
  bytes array_bytes = 2;

}


message SpotResultValue {
  oneof value {
      iqm.data_definitions.common.v1.Int64Array int64_array = 5;
      iqm.data_definitions.common.v1.Float64Array float64_array = 6;
      iqm.data_definitions.common.v1.Complex128Array complex128_array = 7;
      NpyArray npy_array = 8;
  }
}

Classes