Skip to content

Commit bc7fa4b

Browse files
authored
Merge pull request #89 from dihm/dds_gate_kwargs
Allow passthrough of other kwargs in DDS gate DigitalOut specification.
2 parents ed6b0eb + ae5fd9f commit bc7fa4b

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

labscript/labscript.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2860,7 +2860,7 @@ def __init__(self, name, parent_device, connection, digital_gate={}, freq_limits
28602860
digital_gate (dict, optional): Configures a digital output to use as an enable/disable
28612861
gate for the output. Should contain keys `'device'` and `'connection'`
28622862
with arguments for the `parent_device` and `connection` for instantiating
2863-
the :obj:`DigitalOut`.
2863+
the :obj:`DigitalOut`. All other (optional) keys are passed as kwargs.
28642864
freq_limits (tuple, optional): `(lower, upper)` limits for the
28652865
frequency of the output
28662866
freq_conv_class (:obj:`labscript_utils:labscript_utils.unitconversions`, optional):
@@ -2912,8 +2912,10 @@ def __init__(self, name, parent_device, connection, digital_gate={}, freq_limits
29122912
self.phase = AnalogQuantity(self.name + '_phase', self, 'phase', phase_limits, phase_conv_class, phase_conv_params)
29132913

29142914
self.gate = None
2915-
if 'device' in digital_gate and 'connection' in digital_gate:
2916-
self.gate = DigitalOut(name + '_gate', digital_gate['device'], digital_gate['connection'])
2915+
if 'device' in digital_gate and 'connection' in digital_gate:
2916+
dev = digital_gate.pop('device')
2917+
conn = digital_gate.pop('connection')
2918+
self.gate = DigitalOut(name + '_gate', dev, conn, **digital_gate)
29172919
# Did they only put one key in the dictionary, or use the wrong keywords?
29182920
elif len(digital_gate) > 0:
29192921
raise LabscriptError('You must specify the "device" and "connection" for the digital gate of %s.' % (self.name))
@@ -3041,7 +3043,7 @@ def __init__(self,name,parent_device,connection,digital_gate = {},freq_limits =
30413043
digital_gate (dict, optional): Configures a digital output to use as an enable/disable
30423044
gate for the output. Should contain keys `'device'` and `'connection'`
30433045
with arguments for the `parent_device` and `connection` for instantiating
3044-
the :obj:`DigitalOut`.
3046+
the :obj:`DigitalOut`. All other (optional) keys are passed as kwargs.
30453047
freq_limits (tuple, optional): `(lower, upper)` limits for the
30463048
frequency of the output
30473049
freq_conv_class (:obj:`labscript_utils:labscript_utils.unitconversions`, optional):
@@ -3091,8 +3093,10 @@ def __init__(self,name,parent_device,connection,digital_gate = {},freq_limits =
30913093
self.amplitude = StaticAnalogQuantity(self.name+'_amp',self,'amp',amp_limits,amp_conv_class,amp_conv_params)
30923094
self.phase = StaticAnalogQuantity(self.name+'_phase',self,'phase',phase_limits,phase_conv_class,phase_conv_params)
30933095

3094-
if 'device' in digital_gate and 'connection' in digital_gate:
3095-
self.gate = DigitalOut(self.name+'_gate',digital_gate['device'],digital_gate['connection'])
3096+
if 'device' in digital_gate and 'connection' in digital_gate:
3097+
dev = digital_gate.pop('device')
3098+
conn = digital_gate.pop('connection')
3099+
self.gate = DigitalOut(name + '_gate', dev, conn, **digital_gate)
30963100
# Did they only put one key in the dictionary, or use the wrong keywords?
30973101
elif len(digital_gate) > 0:
30983102
raise LabscriptError('You must specify the "device" and "connection" for the digital gate of %s.'%(self.name))

0 commit comments

Comments
 (0)