Processed most breaking changes + new Octave support
Pre-release
Pre-release
nulinspiratie
released this
14 Mar 18:13
·
270 commits
to main
since this release
[0.3.0]
Added
- Added InOutSingleChannel
- Added optional
config_settings
property to quam components indicating that they should be called before/after other components when generating QUA configuration - Added support for the new Octave API.
- Added support for
Literal
types in QuAM
Changed
- Changed
InOutIQChannel.input_offset_I/Q
toInOutIQChannel.opx_input_offset_I/Q
- Renamed
SingleChannel.output_offset
->SingleChannel.opx_output_offset
- Pulse behaviour modifications to allow pulses to be attached to objects other than channels. Changes conist of following components
- Added
pulse.channel
, which returns None if both its parent & grandparent is not aChannel
- Rename
Pulse.full_name
->Pulse.name
.
Raises error ifPulse.channel
is None
TODO Check if this causes issues Pulse.apply_to_config
does nothing if pulse has no channel
- Added
- Raise AttributeError if channel doesn't have a well-defined name.
This happens if channel.id is not set, and channel.parent does not have a name either Pulse.axis_angle
is now in radians instead of degrees.- Channel offsets (e.g.
SingleChannel.opx_output_offset
) is None by default (see note in Fixed) Pulse.id
is now an instance variable instead of a class variable- Channel frequency converter default types are now
BaseFrequencyConverter
which has fewer attributes thanFrequencyConverter
. This is to make it compatible with the new Octave API.
Fixed
- Don't raise instantiation error when required_type is not a class
- Add support for QuAM component sublist type: List[List[...]]
- Channel offsets (e.g.
SingleChannel.opx_output_offset
) are ensured to be unique, otherwise a warning is raised- Previously the offset could be overwritten when two channels share the same port
- Default values are None, and they're only added if nonzero
- If the offset is not specified in config at the end, it's manually added to be 0.0
- JSON serializer doesn't break if an item is added to ignore that isn't part of QuAM
- Allow
QuamDict
keys to be integers