qat.purr.integrations.features module

class Constraints(pulse_control_contraints=None, max_scale=1, max_waveform_amplitude=1, awg_frequency_bandwidth=Quantity(amount=1, unit=<Unit.FREQUENCY: 'Hz'>, scale=<Scale.DEFAULT: ''>), max_pulse_duration=Quantity(amount=120, unit=<Unit.TIME: 's'>, scale=<Scale.MICRO: 'us'>), min_pulse_duration=Quantity(amount=8, unit=<Unit.TIME: 's'>, scale=<Scale.NANO: 'ns'>), min_pulse_time=Quantity(amount=8, unit=<Unit.TIME: 's'>, scale=<Scale.NANO: 'ns'>))

Bases: object

awg_frequency_bandwidth: str = Quantity(amount=1, unit=<Unit.FREQUENCY: 'Hz'>, scale=<Scale.DEFAULT: ''>)
max_pulse_duration: str = Quantity(amount=120, unit=<Unit.TIME: 's'>, scale=<Scale.MICRO: 'us'>)
max_scale: float = 1
max_waveform_amplitude: float = 1
min_pulse_duration: str = Quantity(amount=8, unit=<Unit.TIME: 's'>, scale=<Scale.NANO: 'ns'>)
min_pulse_time: str = Quantity(amount=8, unit=<Unit.TIME: 's'>, scale=<Scale.NANO: 'ns'>)
pulse_control_contraints: str = None
class FeatureMetadata

Bases: object

Exposed metadata for various languages, integrations and features.

to_json_dict()

Turn object into a JSON-amenable dictionary to return from a web service. All returned dictionaries should be able to be merged together without additional effort, so make sure a root node with the name of the feature is available.

class OpenPulseFeatures

Bases: FeatureMetadata

for_hardware(hardware)
to_json_dict()

Turn object into a JSON-amenable dictionary to return from a web service. All returned dictionaries should be able to be merged together without additional effort, so make sure a root node with the name of the feature is available.

class Quantity(amount, unit, scale)

Bases: object

amount: float
scale: Scale
unit: Unit
class Scale(value)

Bases: Enum

SI units of frequency

DEFAULT = ''
GIGA = 'G'
KILO = 'k'
MEGA = 'M'
MICRO = 'us'
MILLI = 'ms'
NANO = 'ns'
TERA = 'T'
class Unit(value)

Bases: Enum

Physical SI units.

FREQUENCY = 'Hz'
TIME = 's'