File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -288,7 +288,7 @@ def select_trains(self, trains):
288288 '_stage_src' , '_stage_delay_key' ,
289289 '_bam_src' , '_bam_delay_key' ,
290290 '_pulses'
291- ])
291+ ], trains )
292292
293293 def _trigger_delays (self , labelled = True , by_pulse = False ,
294294 pulse_dim = 'pulseId' ):
Original file line number Diff line number Diff line change 1010
1111from extra_data import by_id
1212from extra_data .read_machinery import split_trains
13+ from .utils import _select_subcomponent_trains
1314
1415
1516# Pulse indices used internally for virtual leading and trailing pulses.
@@ -117,22 +118,18 @@ def select_trains(self, trains):
117118 This method accepts the same type of arguments as
118119 [DataCollection.select_trains][extra_data.DataCollection.select_trains].
119120 """
120- res = copy (self )
121-
122- if self ._raw_control_src is not None :
123- res ._raw_control_src = self ._raw_control_src .select_trains (trains )
124- if self ._raw_instrument_src is not None :
125- res ._raw_instrument_src = self ._raw_instrument_src .select_trains (trains )
121+ res = _select_subcomponent_trains (self , [
122+ '_raw_control_src' ,
123+ '_raw_instrument_src' ,
124+ '_centroids_control_src' ,
125+ '_centroids_instrument_src' ,
126+ '_pulses' ,
127+ ], trains )
126128 if self ._raw_instrument_dc is not None :
127129 raw_train_ids = res .raw_size_key .drop_empty_trains ().train_ids
128130 res ._raw_instrument_dc = self ._raw_instrument_dc .select_trains (
129131 by_id [raw_train_ids ]
130132 )
131- if self ._centroids_control_src is not None :
132- res ._centroids_control_src = self ._centroids_control_src .select_trains (trains )
133- if self ._centroids_instrument_src is not None :
134- res ._centroids_instrument_src = self ._centroids_instrument_src .select_trains (trains )
135- res ._pulses = self ._pulses .select_trains (trains )
136133
137134 return res
138135
Original file line number Diff line number Diff line change @@ -63,13 +63,13 @@ def _instrument_to_sase(instrument):
6363 return 3
6464
6565
66- def _select_subcomponent_trains (src , keys , dst = None ):
66+ def _select_subcomponent_trains (src , keys , trains , dst = None ):
6767 if dst is None :
6868 from copy import copy
6969 dst = copy (src )
7070
7171 for key in keys :
72- prop = getattr (self , key )
72+ prop = getattr (src , key )
7373
7474 if prop is not None :
7575 setattr (dst , key , prop .select_trains (trains ))
You can’t perform that action at this time.
0 commit comments