Skip to content

Commit 2755883

Browse files
committed
checking for typing
1 parent fc309d4 commit 2755883

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/aind_data_schema/rig.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,35 @@
4141
Wheel,
4242
)
4343

44+
devices = [Calibration,
45+
CameraAssembly,
46+
DAQDevice,
47+
Detector,
48+
Device,
49+
DigitalMicromirrorDevice,
50+
Disc,
51+
EphysAssembly,
52+
Filter,
53+
HarpDevice,
54+
Laser,
55+
LaserAssembly,
56+
Lens,
57+
LightEmittingDiode,
58+
Monitor,
59+
NeuropixelsBasestation,
60+
Objective,
61+
Olfactometer,
62+
OpenEphysAcquisitionBoard,
63+
Patch,
64+
PockelsCell,
65+
PolygonalScanner,
66+
RewardDelivery,
67+
Speaker,
68+
StickMicroscopeAssembly,
69+
Treadmill,
70+
Tube,
71+
Wheel,
72+
]
4473

4574
class Rig(AindCoreModel):
4675
"""Description of a rig"""
@@ -97,17 +126,28 @@ def validate_device_names(cls, values): # noqa: C901
97126
actually exist
98127
"""
99128

129+
model_types = [type(model) for model in devices]
130+
131+
to_check = [field for field in values.keys() if any(isinstance(values.get(field), model) for model in devices)]
132+
100133
cameras = values.get("cameras")
101134
ephys_assemblies = values.get("ephys_assemblies")
102135
laser_assemblies = values.get("laser_assemblies")
103136
mouse_platform = values.get("mouse_platform")
104137
daqs = values.get("daqs")
105138

139+
140+
106141
if daqs is None:
107142
return values
108143

109144
device_names = [None]
110145

146+
for field in to_check:
147+
if values.get(field) is not None:
148+
print(values.get(field))
149+
device_names += [device.name for device in values.get(field)]
150+
111151
if cameras is not None:
112152
device_names += [c.camera.name for c in cameras]
113153

0 commit comments

Comments
 (0)