class PulseBackendConfigurationSchema(QasmBackendConfigurationSchema): """Schema for pulse backend""" # Required properties. open_pulse = fields.Boolean(required=True, validate=OneOf([True])) n_uchannels = fields.Integer(required=True, validate=Range(min=0)) u_channel_lo = fields.List( fields.Nested(UchannelLOSchema, validate=Length(min=1), required=True, many=True)) meas_levels = fields.List(fields.Integer(), validate=Length(min=1), required=True) qubit_lo_range = fields.List(fields.List( fields.Float(validate=Range(min=0)), validate=Length(equal=2)), required=True) meas_lo_range = fields.List(fields.List( fields.Float(validate=Range(min=0)), validate=Length(equal=2)), required=True) dt = fields.Float(required=True, validate=Range(min=0)) # pylint: disable=invalid-name dtm = fields.Float(required=True, validate=Range(min=0)) rep_times = fields.List(fields.Integer(validate=Range(min=0)), required=True) meas_kernels = fields.List(fields.String(), required=True) discriminators = fields.List(fields.String(), required=True) # Optional properties. meas_map = fields.List( fields.List(fields.Integer(), validate=Length(min=1))) channel_bandwidth = fields.List( fields.List(fields.Float(), validate=Length(equal=2))) acquisition_latency = fields.List(fields.List(fields.Integer())) conditional_latency = fields.List(fields.List(fields.Integer())) hamiltonian = PulseHamiltonianSchema()
class BackendConfigurationSchema(BaseSchema): """Schema for BackendConfiguration.""" # Required properties. backend_name = fields.String(required=True) backend_version = fields.String(required=True, validate=Regexp("[0-9]+.[0-9]+.[0-9]+$")) n_qubits = fields.Integer(required=True, validate=Range(min=1)) basis_gates = fields.List(fields.String(), required=True) gates = fields.Nested(GateConfigSchema, required=True, many=True) local = fields.Boolean(required=True) simulator = fields.Boolean(required=True) conditional = fields.Boolean(required=True) open_pulse = fields.Boolean(required=True) memory = fields.Boolean(required=True) max_shots = fields.Integer(required=True, validate=Range(min=1)) coupling_map = fields.List(fields.List(fields.Integer(), validate=Length(min=1)), validate=Length(min=1), allow_none=True, required=True) # Optional properties. max_experiments = fields.Integer(validate=Range(min=1)) sample_name = fields.String() n_registers = fields.Integer(validate=Range(min=1)) register_map = fields.List(fields.List( fields.Integer(validate=OneOf([0, 1])), validate=Length(min=1)), validate=Length(min=1)) configurable = fields.Boolean() credits_required = fields.Boolean() online_date = fields.DateTime() display_name = fields.String() description = fields.String() tags = fields.List(fields.String())
class GateConfigSchema(BaseSchema): """Schema for GateConfig.""" # Required properties. name = fields.String(required=True) parameters = fields.List(fields.String(), required=True) qasm_def = fields.String(required=True) # Optional properties. coupling_map = fields.List(fields.List(fields.Integer(), validate=Length(min=1)), validate=Length(min=1)) latency_map = fields.List(fields.List( fields.Integer(validate=OneOf([0, 1])), validate=Length(min=1)), validate=Length(min=1)) conditional = fields.Boolean() description = fields.String()
class QasmBackendConfigurationSchema(BackendConfigurationSchema): """Schema for Qasm backend.""" open_pulse = fields.Boolean(required=True, validate=OneOf([False]))