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()
Example #2
0
class NduvSchema(BaseSchema):
    """Schema for name-date-unit-value."""

    # Required properties.
    date = fields.DateTime(required=True)
    name = fields.String(required=True)
    unit = fields.String(required=True)
    value = fields.Number(required=True)
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 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())
Example #5
0
class BackendPropertiesSchema(BaseSchema):
    """Schema for BackendProperties."""

    # Required properties.
    backend_name = fields.String(required=True)
    backend_version = fields.String(required=True,
                                    validate=Regexp("[0-9]+.[0-9]+.[0-9]+$"))
    last_update_date = fields.DateTime(required=True)
    qubits = fields.List(fields.Nested(NduvSchema,
                                       many=True,
                                       validate=Length(min=1)),
                         required=True,
                         validate=Length(min=1))
    gates = fields.Nested(GateSchema,
                          required=True,
                          many=True,
                          validate=Length(min=1))
    general = fields.Nested(NduvSchema, required=True, many=True)
class PulseHamiltonianSchema(BaseSchema):
    """Schema for PulseHamiltonian."""

    # Required properties.
    h_str = fields.List(fields.String(), validate=Length(min=1), required=True)
    dim_osc = fields.List(fields.Integer(validate=Range(min=1)), required=True)
    dim_qub = fields.List(fields.Integer(validate=Range(min=2)), required=True)
    vars = fields.Dict(validate=PatternProperties(
        {Regexp('^([a-z0-9])+$'): fields.InstructionParameter()}),
                       required=True)
class CommandSchema(BaseSchema):
    """Schema for Command."""

    # Required properties.
    name = fields.String(required=True)

    # Optional properties.
    qubits = fields.List(fields.Integer(validate=Range(min=0)),
                         validate=Length(min=1))
    sequence = fields.Nested(PulseQobjInstructionSchema, many=True)
Example #8
0
class GateSchema(BaseSchema):
    """Schema for Gate."""

    # Required properties.
    qubits = fields.List(fields.Integer(),
                         required=True,
                         validate=Length(min=1))
    gate = fields.String(required=True)
    parameters = fields.Nested(NduvSchema,
                               required=True,
                               many=True,
                               validate=Length(min=1))
Example #9
0
class BookSchema(BaseSchema):
    """Example Book schema."""
    title = fields.String(required=True)
    date = fields.Date()
    author = fields.Nested(PersonSchema, required=True)
Example #10
0
class PersonSchema(BaseSchema):
    """Example Person schema."""
    name = fields.String(required=True)
    birth_date = fields.Date()
    email = fields.Email()
class DiscriminatorSchema(BaseSchema):
    """Schema for Discriminator."""

    # Optional properties.
    name = fields.String()
    params = fields.Nested(ObjSchema)
class MeasurementKernelSchema(BaseSchema):
    """Schema for MeasurementKernel."""

    # Optional properties.
    name = fields.String()
    params = fields.Nested(ObjSchema)