Skip to content

Commit 7184964

Browse files
authored
refactor: flatten connection (#1507)
* refactor: simplify the Connection pattern * tests: fix broken tests * tests: remove unnecessary test * Revert "tests: remove unnecessary test" This reverts commit 5e600be. * tests: fix test so it runs properly * tests: tweaking things to add coverage * tests: improving test * tests: adding some missing coverage
1 parent 8799377 commit 7184964

16 files changed

+376
-749
lines changed

examples/aibs_smartspim_instrument.py

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
Microscope,
1717
)
1818
from aind_data_schema_models.modalities import Modality
19-
from aind_data_schema.components.connections import Connection, ConnectionData, ConnectionDirection
19+
from aind_data_schema.components.connections import Connection
2020
from aind_data_schema.core.instrument import Instrument
2121
from aind_data_schema.components.coordinates import (
2222
CoordinateSystemLibrary,
@@ -175,46 +175,29 @@
175175

176176
connections = [
177177
Connection(
178-
device_names=["COM Device", "Laser Launch"],
179-
connection_data={
180-
"Laser Launch": ConnectionData(
181-
direction=ConnectionDirection.RECEIVE,
182-
),
183-
"COM Device": ConnectionData(
184-
direction=ConnectionDirection.SEND,
185-
port="COM4",
186-
),
187-
},
178+
source_device="COM Device",
179+
source_port="COM4",
180+
target_device="Laser Launch",
188181
),
189182
Connection(
190-
device_names=["Sample stage Z", "Sample stage X", "Sample stage Y", "ASI Tiger"],
191-
connection_data={
192-
"ASI Tiger": ConnectionData(
193-
direction=ConnectionDirection.SEND,
194-
port="COM3",
195-
),
196-
"Sample stage Z": ConnectionData(
197-
direction=ConnectionDirection.RECEIVE,
198-
),
199-
"Sample stage Y": ConnectionData(
200-
direction=ConnectionDirection.RECEIVE,
201-
),
202-
"Sample stage X": ConnectionData(
203-
direction=ConnectionDirection.RECEIVE,
204-
),
205-
},
183+
source_device="ASI Tiger",
184+
source_port="COM3",
185+
target_device="Sample stage Z",
206186
),
207187
Connection(
208-
device_names=["Lens 1", "MightyZap"],
209-
connection_data={
210-
"MightyZap": ConnectionData(
211-
direction=ConnectionDirection.SEND,
212-
port="COM9",
213-
),
214-
"Lens 1": ConnectionData(
215-
direction=ConnectionDirection.RECEIVE,
216-
),
217-
},
188+
source_device="ASI Tiger",
189+
source_port="COM3",
190+
target_device="Sample stage X",
191+
),
192+
Connection(
193+
source_device="ASI Tiger",
194+
source_port="COM3",
195+
target_device="Sample stage Y",
196+
),
197+
Connection(
198+
source_device="MightyZap",
199+
source_port="COM9",
200+
target_device="Lens 1",
218201
),
219202
]
220203

examples/aind_smartspim_instrument.py

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
ScanningStage,
1212
Device,
1313
)
14-
from aind_data_schema.components.connections import Connection, ConnectionData, ConnectionDirection
14+
from aind_data_schema.components.connections import Connection
1515
from aind_data_schema.core.instrument import (
1616
Detector,
1717
Instrument,
@@ -218,40 +218,19 @@
218218

219219
connections = [
220220
Connection(
221-
device_names=["COM Device", "Laser Launch"],
222-
connection_data={
223-
"Laser Launch": ConnectionData(
224-
direction=ConnectionDirection.RECEIVE,
225-
),
226-
"COM Device": ConnectionData(
227-
direction=ConnectionDirection.SEND,
228-
port="COM4",
229-
),
230-
},
221+
source_device="COM Device",
222+
source_port="COM4",
223+
target_device="Laser Launch",
231224
),
232225
Connection(
233-
device_names=["COM Device", "ASI Tiger"],
234-
connection_data={
235-
"ASI Tiger": ConnectionData(
236-
direction=ConnectionDirection.RECEIVE,
237-
),
238-
"COM Device": ConnectionData(
239-
direction=ConnectionDirection.SEND,
240-
port="COM3",
241-
),
242-
},
226+
source_device="COM Device",
227+
source_port="COM3",
228+
target_device="ASI Tiger",
243229
),
244230
Connection(
245-
device_names=["COM Device", "MightyZap"],
246-
connection_data={
247-
"MightyZap": ConnectionData(
248-
direction=ConnectionDirection.RECEIVE,
249-
),
250-
"COM Device": ConnectionData(
251-
direction=ConnectionDirection.SEND,
252-
port="COM9",
253-
),
254-
},
231+
source_device="COM Device",
232+
source_port="COM9",
233+
target_device="MightyZap",
255234
),
256235
]
257236

examples/ephys_instrument.py

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
Computer,
2929
)
3030
from aind_data_schema.components.measurements import Calibration
31-
from aind_data_schema.components.connections import Connection, ConnectionData, ConnectionDirection
31+
from aind_data_schema.components.connections import Connection
3232
from aind_data_schema.core.instrument import Instrument
3333
from aind_data_schema_models.units import PowerUnit
3434
from aind_data_schema_models.coordinates import AnatomicalRelative
@@ -62,52 +62,51 @@
6262

6363
connections = [
6464
Connection(
65-
device_names=["Harp Behavior", "Face Camera"],
66-
connection_data={
67-
"Harp Behavior": ConnectionData(port="DO0", direction=ConnectionDirection.SEND),
68-
"Face Camera": ConnectionData(direction=ConnectionDirection.RECEIVE),
69-
},
65+
source_device="Harp Behavior",
66+
source_port="DO0",
67+
target_device="Face Camera",
7068
),
7169
Connection(
72-
device_names=["Harp Behavior", "Body Camera"],
73-
connection_data={
74-
"Harp Behavior": ConnectionData(port="DO1", direction=ConnectionDirection.SEND),
75-
"Body Camera": ConnectionData(direction=ConnectionDirection.RECEIVE),
76-
},
70+
source_device="Harp Behavior",
71+
source_port="DO1",
72+
target_device="Body Camera",
7773
),
7874
Connection(
79-
device_names=["Harp Behavior", "Running Wheel"],
80-
connection_data={
81-
"Harp Behavior": ConnectionData(port="AI0", direction=ConnectionDirection.RECEIVE),
82-
"Running Wheel": ConnectionData(direction=ConnectionDirection.SEND),
83-
},
75+
source_device="Running Wheel",
76+
target_device="Harp Behavior",
77+
target_port="AI0",
8478
),
8579
Connection(
86-
device_names=["Harp Behavior", "Face Camera", "Body Camera", computer_names["Behavior computer"]],
87-
connection_data={
88-
"Harp Behavior": ConnectionData(direction=ConnectionDirection.SEND),
89-
"Face Camera": ConnectionData(direction=ConnectionDirection.SEND),
90-
"Body Camera": ConnectionData(direction=ConnectionDirection.SEND),
91-
computer_names["Behavior computer"]: ConnectionData(direction=ConnectionDirection.RECEIVE),
92-
},
80+
source_device="Harp Behavior",
81+
target_device=computer_names["Behavior computer"],
9382
),
9483
Connection(
95-
device_names=[
96-
computer_names["Ephys computer"],
97-
"Basestation Slot 3",
98-
"stick microscope 1",
99-
"stick microscope 2",
100-
"stick microscope 3",
101-
"stick microscope 4",
102-
],
103-
connection_data={
104-
computer_names["Ephys computer"]: ConnectionData(direction=ConnectionDirection.RECEIVE),
105-
"Basestation Slot 3": ConnectionData(direction=ConnectionDirection.SEND),
106-
"stick microscope 1": ConnectionData(direction=ConnectionDirection.SEND),
107-
"stick microscope 2": ConnectionData(direction=ConnectionDirection.SEND),
108-
"stick microscope 3": ConnectionData(direction=ConnectionDirection.SEND),
109-
"stick microscope 4": ConnectionData(direction=ConnectionDirection.SEND),
110-
},
84+
source_device="Face Camera",
85+
target_device=computer_names["Behavior computer"],
86+
),
87+
Connection(
88+
source_device="Body Camera",
89+
target_device=computer_names["Behavior computer"],
90+
),
91+
Connection(
92+
source_device="Basestation Slot 3",
93+
target_device=computer_names["Ephys computer"],
94+
),
95+
Connection(
96+
source_device="stick microscope 1",
97+
target_device=computer_names["Ephys computer"],
98+
),
99+
Connection(
100+
source_device="stick microscope 2",
101+
target_device=computer_names["Ephys computer"],
102+
),
103+
Connection(
104+
source_device="stick microscope 3",
105+
target_device=computer_names["Ephys computer"],
106+
),
107+
Connection(
108+
source_device="stick microscope 4",
109+
target_device=computer_names["Ephys computer"],
111110
),
112111
]
113112

examples/exaspim_instrument.py

Lines changed: 27 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
Computer,
1919
Microscope,
2020
)
21-
from aind_data_schema.components.connections import Connection, ConnectionData, ConnectionDirection
21+
from aind_data_schema.components.connections import Connection
2222
from aind_data_schema.core.instrument import Instrument
2323
from aind_data_schema_models.modalities import Modality
2424
from aind_data_schema.components.coordinates import CoordinateSystemLibrary
@@ -209,111 +209,48 @@
209209

210210
connections = [
211211
Connection(
212-
device_names=["COM Device", "Laser Launch"],
213-
connection_data={
214-
"Laser Launch": ConnectionData(
215-
direction=ConnectionDirection.RECEIVE,
216-
),
217-
"COM Device": ConnectionData(
218-
direction=ConnectionDirection.SEND,
219-
port="COM4",
220-
),
221-
},
212+
source_device="COM Device",
213+
source_port="COM4",
214+
target_device="Laser Launch",
222215
),
223216
Connection(
224-
device_names=["COM Device", "ASI Tiger"],
225-
connection_data={
226-
"ASI Tiger": ConnectionData(
227-
direction=ConnectionDirection.RECEIVE,
228-
),
229-
"COM Device": ConnectionData(
230-
direction=ConnectionDirection.SEND,
231-
port="COM3",
232-
),
233-
},
217+
source_device="COM Device",
218+
source_port="COM3",
219+
target_device="ASI Tiger",
234220
),
235221
Connection(
236-
device_names=["Dev2", "LAS-08308"],
237-
connection_data={
238-
"LAS-08308": ConnectionData(
239-
direction=ConnectionDirection.RECEIVE,
240-
),
241-
"Dev2": ConnectionData(
242-
direction=ConnectionDirection.SEND,
243-
port="3",
244-
),
245-
},
222+
source_device="Dev2",
223+
source_port="3",
224+
target_device="LAS-08308",
246225
),
247226
Connection(
248-
device_names=["Dev2", "539251"],
249-
connection_data={
250-
"539251": ConnectionData(
251-
direction=ConnectionDirection.RECEIVE,
252-
),
253-
"Dev2": ConnectionData(
254-
direction=ConnectionDirection.SEND,
255-
port="5",
256-
),
257-
},
227+
source_device="Dev2",
228+
source_port="5",
229+
target_device="539251",
258230
),
259231
Connection(
260-
device_names=["Dev2", "LAS-08309"],
261-
connection_data={
262-
"LAS-08309": ConnectionData(
263-
direction=ConnectionDirection.RECEIVE,
264-
),
265-
"Dev2": ConnectionData(
266-
direction=ConnectionDirection.SEND,
267-
port="4",
268-
),
269-
},
232+
source_device="Dev2",
233+
source_port="4",
234+
target_device="LAS-08309",
270235
),
271236
Connection(
272-
device_names=["Dev2", "stage-x"],
273-
connection_data={
274-
"stage-x": ConnectionData(
275-
direction=ConnectionDirection.RECEIVE,
276-
),
277-
"Dev2": ConnectionData(
278-
direction=ConnectionDirection.SEND,
279-
port="2",
280-
),
281-
},
237+
source_device="Dev2",
238+
source_port="2",
239+
target_device="stage-x",
282240
),
283241
Connection(
284-
device_names=["Dev2", "TL-1"],
285-
connection_data={
286-
"TL-1": ConnectionData(
287-
direction=ConnectionDirection.RECEIVE,
288-
),
289-
"Dev2": ConnectionData(
290-
direction=ConnectionDirection.SEND,
291-
port="0",
292-
),
293-
},
242+
source_device="Dev2",
243+
source_port="0",
244+
target_device="TL-1",
294245
),
295246
Connection(
296-
device_names=["Dev2", "LAS-08307"],
297-
connection_data={
298-
"LAS-08307": ConnectionData(
299-
direction=ConnectionDirection.RECEIVE,
300-
),
301-
"Dev2": ConnectionData(
302-
direction=ConnectionDirection.SEND,
303-
port="6",
304-
),
305-
},
247+
source_device="Dev2",
248+
source_port="6",
249+
target_device="LAS-08307",
306250
),
307251
Connection(
308-
device_names=["Dev2", "Dev2-PC"],
309-
connection_data={
310-
"Dev2-PC": ConnectionData(
311-
direction=ConnectionDirection.RECEIVE,
312-
),
313-
"Dev2": ConnectionData(
314-
direction=ConnectionDirection.SEND,
315-
),
316-
},
252+
source_device="Dev2",
253+
target_device="Dev2-PC",
317254
),
318255
]
319256

0 commit comments

Comments
 (0)