예제 #1
0
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()
예제 #2
0
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())
예제 #3
0
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()
예제 #4
0
class QasmBackendConfigurationSchema(BackendConfigurationSchema):
    """Schema for Qasm backend."""
    open_pulse = fields.Boolean(required=True, validate=OneOf([False]))