Add API for IQ channel
Created by: mjhaye
This is how I have done it now for lls. Still based on the IQ_channel_constructor to keep the implementation identical, but maybe a new/double implementation is preferred (to avoid circular dependencies).
Also the name define_iq_channel
looks a lot like define_IQ_channel
but I could not think of something better and eventually the latter should be removed, I think.
Also added py.typed so that the typehints that exist at least are available to external users.
Merge request reports
Activity
mentioned in merge request !31 (closed)
Created by: sldesnoo-Delft
Thanks for the contribution. I'll copy the API you propose. I'm going to change the implementation to make it a lot cleaner. IQ_channel_constructor.init() now calls pulse_lib.define_IQ_channel(). When pulse_lib_define_iq_channel() calls IQ_channel_constructor.init() calling pulse_lib.define_IQ_channel() then at least I get a bit confused.
Created by: sldesnoo-Delft
Committed on dev branch: https://github.com/stephanlphilips/pulse_lib/commit/6ca2772e02074e838e7144d58bcd2d37bb04c051
To be tested with hardware. Release today or tomorrow.
Created by: sldesnoo-Delft
Changed API to: def define_iq_channel( self, name: str, i_name: str = "", q_name: str = "", i_neg_name: str = "", q_neg_name: str = "", marker_name: str = "" ) -> None: ''' Defines a new IQ pair for IQ modulated MW pulse generation via qubit channels.
For balanced IQ signals two additional channels may be specified for the negative image of I and Q signal. Args: i_name: awg channel name of the I component (+) q_name: awg channel name of the Q component (+) i_neg_name: [optional] awg channel name of the I component (-) q_neg_name: [optional] awg channel name of the Q component (-) marker_name: [optional] marker to use for pulse modulation. '''