@@ -128,38 +128,80 @@ def validate_device_names(cls, values): # noqa: C901
128128 actually exist
129129 """
130130
131- model_types = [type ( model ) for model in devices ]
131+ device_names = []
132132
133- to_check = [field for field in values .keys () if any (isinstance (values .get (field ), model ) for model in devices )]
133+ # model_types = [type(model) for model in devices]
134+
135+ # to_check = [field for field in values.keys() if any(isinstance(values.get(field), model) for model in model_types)]
136+ # print("values: ", values.keys())
137+ # print("checked: ", to_check)
138+
139+ # to_check2 = []
140+
141+ # for field in values.keys():
142+ # cur_value = values.get(field)
143+ # for model_type in devices:
144+ # if type(cur_value) is list:
145+ # for value in cur_value:
146+ # if isinstance(value, model_type):
147+ # to_check2 += [field]
148+ # else:
149+ # if isinstance(cur_value, model_type):
150+ # to_check2 += [field]
134151
135152 cameras = values .get ("cameras" )
136153 ephys_assemblies = values .get ("ephys_assemblies" )
137154 laser_assemblies = values .get ("laser_assemblies" )
138155 mouse_platform = values .get ("mouse_platform" )
156+ stimulus_devices = values .get ("stimulus_devices" )
157+ stick_microscopes = values .get ("stick_microscopes" )
158+ light_sources = values .get ("light_sources" )
159+ patch_coords = values .get ("patch_cords" )
160+ detectors = values .get ("detectors" )
161+ objectives = values .get ("objectives" )
162+ filters = values .get ("filters" )
163+ lenses = values .get ("lenses" )
164+ digital_micromirror_devices = values .get ("digital_micromirror_devices" )
165+ polygonal_scanners = values .get ("polygonal_scanners" )
166+ pockels_cells = values .get ("pockels_cells" )
167+ additional_devices = values .get ("additional_devices" )
139168 daqs = values .get ("daqs" )
140169
141170
142171
143172 if daqs is None :
144173 return values
145174
146- device_names = [None ]
175+ # device_names = [None]
176+
177+ # for field in to_check2:
178+ # v = values.get(field)
179+ # if v is not None:
180+ # if isinstance(v, list):
181+ # for item in v:
182+ # print("type: ", type(item))
183+ # print("item: ", item)
184+ # if isinstance(item, CameraAssembly):
185+ # device_names += item.camera.name
186+ # else:
187+ # device_names += [device.name for device in item]
188+ # else:
189+ # device_names += [v.name]
147190
148- for field in to_check :
149- v = values .get (field )
150- if v is not None :
151- if isinstance (v , list ):
152- device_names += [json .dumps (device ) for device in values .get (field )]
153- else :
154- device_names += [v .name ]
191+ # print(device_names)
155192
156- print (device_names )
193+ for device_type in [daqs , stimulus_devices , light_sources , patch_coords ,detectors , objectives , filters , lenses , digital_micromirror_devices , polygonal_scanners , pockels_cells , additional_devices ]:
194+ if device_type is not None :
195+ device_names += [device .name for device in device_type ]
157196
158- if cameras is not None :
159- device_names += [c .camera .name for c in cameras ]
197+ for camera_device in [cameras , stick_microscopes ]:
198+ if camera_device is not None :
199+ device_names += [camera .camera .name for camera in camera_device ]
200+
201+ for nested_device in [ephys_assemblies , laser_assemblies ]:
202+ if nested_device is not None :
203+ device_names += [device .name for device in nested_device ]
160204
161- if daqs is not None :
162- device_names += [daq .name for daq in daqs ]
163205
164206 if ephys_assemblies is not None :
165207 device_names += [probe .name for ephys_assembly in ephys_assemblies for probe in ephys_assembly .probes ]
@@ -170,6 +212,10 @@ def validate_device_names(cls, values): # noqa: C901
170212 if mouse_platform is not None :
171213 device_names += [mouse_platform .name ]
172214
215+
216+ print (device_names )
217+
218+
173219 for daq in daqs :
174220 if daq .channels is not None :
175221 for channel in daq .channels :
0 commit comments