opentrons 8.6.0a1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of opentrons might be problematic. Click here for more details.

Files changed (600) hide show
  1. opentrons/__init__.py +150 -0
  2. opentrons/_version.py +34 -0
  3. opentrons/calibration_storage/__init__.py +54 -0
  4. opentrons/calibration_storage/deck_configuration.py +62 -0
  5. opentrons/calibration_storage/encoder_decoder.py +31 -0
  6. opentrons/calibration_storage/file_operators.py +142 -0
  7. opentrons/calibration_storage/helpers.py +103 -0
  8. opentrons/calibration_storage/ot2/__init__.py +34 -0
  9. opentrons/calibration_storage/ot2/deck_attitude.py +85 -0
  10. opentrons/calibration_storage/ot2/mark_bad_calibration.py +27 -0
  11. opentrons/calibration_storage/ot2/models/__init__.py +0 -0
  12. opentrons/calibration_storage/ot2/models/v1.py +149 -0
  13. opentrons/calibration_storage/ot2/pipette_offset.py +129 -0
  14. opentrons/calibration_storage/ot2/tip_length.py +281 -0
  15. opentrons/calibration_storage/ot3/__init__.py +31 -0
  16. opentrons/calibration_storage/ot3/deck_attitude.py +83 -0
  17. opentrons/calibration_storage/ot3/gripper_offset.py +156 -0
  18. opentrons/calibration_storage/ot3/models/__init__.py +0 -0
  19. opentrons/calibration_storage/ot3/models/v1.py +122 -0
  20. opentrons/calibration_storage/ot3/module_offset.py +138 -0
  21. opentrons/calibration_storage/ot3/pipette_offset.py +95 -0
  22. opentrons/calibration_storage/types.py +45 -0
  23. opentrons/cli/__init__.py +21 -0
  24. opentrons/cli/__main__.py +5 -0
  25. opentrons/cli/analyze.py +501 -0
  26. opentrons/config/__init__.py +631 -0
  27. opentrons/config/advanced_settings.py +871 -0
  28. opentrons/config/defaults_ot2.py +214 -0
  29. opentrons/config/defaults_ot3.py +499 -0
  30. opentrons/config/feature_flags.py +86 -0
  31. opentrons/config/gripper_config.py +55 -0
  32. opentrons/config/reset.py +203 -0
  33. opentrons/config/robot_configs.py +187 -0
  34. opentrons/config/types.py +183 -0
  35. opentrons/drivers/__init__.py +0 -0
  36. opentrons/drivers/absorbance_reader/__init__.py +11 -0
  37. opentrons/drivers/absorbance_reader/abstract.py +72 -0
  38. opentrons/drivers/absorbance_reader/async_byonoy.py +352 -0
  39. opentrons/drivers/absorbance_reader/driver.py +81 -0
  40. opentrons/drivers/absorbance_reader/hid_protocol.py +161 -0
  41. opentrons/drivers/absorbance_reader/simulator.py +84 -0
  42. opentrons/drivers/asyncio/__init__.py +0 -0
  43. opentrons/drivers/asyncio/communication/__init__.py +22 -0
  44. opentrons/drivers/asyncio/communication/async_serial.py +183 -0
  45. opentrons/drivers/asyncio/communication/errors.py +88 -0
  46. opentrons/drivers/asyncio/communication/serial_connection.py +552 -0
  47. opentrons/drivers/command_builder.py +102 -0
  48. opentrons/drivers/flex_stacker/__init__.py +13 -0
  49. opentrons/drivers/flex_stacker/abstract.py +214 -0
  50. opentrons/drivers/flex_stacker/driver.py +768 -0
  51. opentrons/drivers/flex_stacker/errors.py +68 -0
  52. opentrons/drivers/flex_stacker/simulator.py +309 -0
  53. opentrons/drivers/flex_stacker/types.py +367 -0
  54. opentrons/drivers/flex_stacker/utils.py +19 -0
  55. opentrons/drivers/heater_shaker/__init__.py +5 -0
  56. opentrons/drivers/heater_shaker/abstract.py +76 -0
  57. opentrons/drivers/heater_shaker/driver.py +204 -0
  58. opentrons/drivers/heater_shaker/simulator.py +94 -0
  59. opentrons/drivers/mag_deck/__init__.py +6 -0
  60. opentrons/drivers/mag_deck/abstract.py +44 -0
  61. opentrons/drivers/mag_deck/driver.py +208 -0
  62. opentrons/drivers/mag_deck/simulator.py +63 -0
  63. opentrons/drivers/rpi_drivers/__init__.py +33 -0
  64. opentrons/drivers/rpi_drivers/dev_types.py +94 -0
  65. opentrons/drivers/rpi_drivers/gpio.py +282 -0
  66. opentrons/drivers/rpi_drivers/gpio_simulator.py +127 -0
  67. opentrons/drivers/rpi_drivers/interfaces.py +15 -0
  68. opentrons/drivers/rpi_drivers/types.py +364 -0
  69. opentrons/drivers/rpi_drivers/usb.py +102 -0
  70. opentrons/drivers/rpi_drivers/usb_simulator.py +22 -0
  71. opentrons/drivers/serial_communication.py +151 -0
  72. opentrons/drivers/smoothie_drivers/__init__.py +4 -0
  73. opentrons/drivers/smoothie_drivers/connection.py +51 -0
  74. opentrons/drivers/smoothie_drivers/constants.py +121 -0
  75. opentrons/drivers/smoothie_drivers/driver_3_0.py +1933 -0
  76. opentrons/drivers/smoothie_drivers/errors.py +49 -0
  77. opentrons/drivers/smoothie_drivers/parse_utils.py +143 -0
  78. opentrons/drivers/smoothie_drivers/simulator.py +99 -0
  79. opentrons/drivers/smoothie_drivers/types.py +16 -0
  80. opentrons/drivers/temp_deck/__init__.py +10 -0
  81. opentrons/drivers/temp_deck/abstract.py +54 -0
  82. opentrons/drivers/temp_deck/driver.py +197 -0
  83. opentrons/drivers/temp_deck/simulator.py +57 -0
  84. opentrons/drivers/thermocycler/__init__.py +12 -0
  85. opentrons/drivers/thermocycler/abstract.py +99 -0
  86. opentrons/drivers/thermocycler/driver.py +395 -0
  87. opentrons/drivers/thermocycler/simulator.py +126 -0
  88. opentrons/drivers/types.py +107 -0
  89. opentrons/drivers/utils.py +222 -0
  90. opentrons/execute.py +742 -0
  91. opentrons/hardware_control/__init__.py +65 -0
  92. opentrons/hardware_control/__main__.py +77 -0
  93. opentrons/hardware_control/adapters.py +98 -0
  94. opentrons/hardware_control/api.py +1347 -0
  95. opentrons/hardware_control/backends/__init__.py +7 -0
  96. opentrons/hardware_control/backends/controller.py +400 -0
  97. opentrons/hardware_control/backends/errors.py +9 -0
  98. opentrons/hardware_control/backends/estop_state.py +164 -0
  99. opentrons/hardware_control/backends/flex_protocol.py +497 -0
  100. opentrons/hardware_control/backends/ot3controller.py +1930 -0
  101. opentrons/hardware_control/backends/ot3simulator.py +900 -0
  102. opentrons/hardware_control/backends/ot3utils.py +664 -0
  103. opentrons/hardware_control/backends/simulator.py +442 -0
  104. opentrons/hardware_control/backends/status_bar_state.py +240 -0
  105. opentrons/hardware_control/backends/subsystem_manager.py +431 -0
  106. opentrons/hardware_control/backends/tip_presence_manager.py +173 -0
  107. opentrons/hardware_control/backends/types.py +14 -0
  108. opentrons/hardware_control/constants.py +6 -0
  109. opentrons/hardware_control/dev_types.py +125 -0
  110. opentrons/hardware_control/emulation/__init__.py +0 -0
  111. opentrons/hardware_control/emulation/abstract_emulator.py +21 -0
  112. opentrons/hardware_control/emulation/app.py +56 -0
  113. opentrons/hardware_control/emulation/connection_handler.py +38 -0
  114. opentrons/hardware_control/emulation/heater_shaker.py +150 -0
  115. opentrons/hardware_control/emulation/magdeck.py +60 -0
  116. opentrons/hardware_control/emulation/module_server/__init__.py +8 -0
  117. opentrons/hardware_control/emulation/module_server/client.py +78 -0
  118. opentrons/hardware_control/emulation/module_server/helpers.py +130 -0
  119. opentrons/hardware_control/emulation/module_server/models.py +31 -0
  120. opentrons/hardware_control/emulation/module_server/server.py +110 -0
  121. opentrons/hardware_control/emulation/parser.py +74 -0
  122. opentrons/hardware_control/emulation/proxy.py +241 -0
  123. opentrons/hardware_control/emulation/run_emulator.py +68 -0
  124. opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
  125. opentrons/hardware_control/emulation/scripts/run_app.py +54 -0
  126. opentrons/hardware_control/emulation/scripts/run_module_emulator.py +72 -0
  127. opentrons/hardware_control/emulation/scripts/run_smoothie.py +37 -0
  128. opentrons/hardware_control/emulation/settings.py +119 -0
  129. opentrons/hardware_control/emulation/simulations.py +133 -0
  130. opentrons/hardware_control/emulation/smoothie.py +192 -0
  131. opentrons/hardware_control/emulation/tempdeck.py +69 -0
  132. opentrons/hardware_control/emulation/thermocycler.py +128 -0
  133. opentrons/hardware_control/emulation/types.py +10 -0
  134. opentrons/hardware_control/emulation/util.py +38 -0
  135. opentrons/hardware_control/errors.py +43 -0
  136. opentrons/hardware_control/execution_manager.py +164 -0
  137. opentrons/hardware_control/instruments/__init__.py +5 -0
  138. opentrons/hardware_control/instruments/instrument_abc.py +39 -0
  139. opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
  140. opentrons/hardware_control/instruments/ot2/instrument_calibration.py +152 -0
  141. opentrons/hardware_control/instruments/ot2/pipette.py +777 -0
  142. opentrons/hardware_control/instruments/ot2/pipette_handler.py +995 -0
  143. opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
  144. opentrons/hardware_control/instruments/ot3/gripper.py +420 -0
  145. opentrons/hardware_control/instruments/ot3/gripper_handler.py +173 -0
  146. opentrons/hardware_control/instruments/ot3/instrument_calibration.py +214 -0
  147. opentrons/hardware_control/instruments/ot3/pipette.py +858 -0
  148. opentrons/hardware_control/instruments/ot3/pipette_handler.py +1030 -0
  149. opentrons/hardware_control/module_control.py +332 -0
  150. opentrons/hardware_control/modules/__init__.py +69 -0
  151. opentrons/hardware_control/modules/absorbance_reader.py +373 -0
  152. opentrons/hardware_control/modules/errors.py +7 -0
  153. opentrons/hardware_control/modules/flex_stacker.py +948 -0
  154. opentrons/hardware_control/modules/heater_shaker.py +426 -0
  155. opentrons/hardware_control/modules/lid_temp_status.py +35 -0
  156. opentrons/hardware_control/modules/magdeck.py +233 -0
  157. opentrons/hardware_control/modules/mod_abc.py +245 -0
  158. opentrons/hardware_control/modules/module_calibration.py +93 -0
  159. opentrons/hardware_control/modules/plate_temp_status.py +61 -0
  160. opentrons/hardware_control/modules/tempdeck.py +299 -0
  161. opentrons/hardware_control/modules/thermocycler.py +731 -0
  162. opentrons/hardware_control/modules/types.py +417 -0
  163. opentrons/hardware_control/modules/update.py +255 -0
  164. opentrons/hardware_control/modules/utils.py +73 -0
  165. opentrons/hardware_control/motion_utilities.py +318 -0
  166. opentrons/hardware_control/nozzle_manager.py +422 -0
  167. opentrons/hardware_control/ot3_calibration.py +1171 -0
  168. opentrons/hardware_control/ot3api.py +3227 -0
  169. opentrons/hardware_control/pause_manager.py +31 -0
  170. opentrons/hardware_control/poller.py +112 -0
  171. opentrons/hardware_control/protocols/__init__.py +106 -0
  172. opentrons/hardware_control/protocols/asyncio_configurable.py +11 -0
  173. opentrons/hardware_control/protocols/calibratable.py +45 -0
  174. opentrons/hardware_control/protocols/chassis_accessory_manager.py +90 -0
  175. opentrons/hardware_control/protocols/configurable.py +48 -0
  176. opentrons/hardware_control/protocols/event_sourcer.py +18 -0
  177. opentrons/hardware_control/protocols/execution_controllable.py +33 -0
  178. opentrons/hardware_control/protocols/flex_calibratable.py +96 -0
  179. opentrons/hardware_control/protocols/flex_instrument_configurer.py +52 -0
  180. opentrons/hardware_control/protocols/gripper_controller.py +55 -0
  181. opentrons/hardware_control/protocols/hardware_manager.py +51 -0
  182. opentrons/hardware_control/protocols/identifiable.py +16 -0
  183. opentrons/hardware_control/protocols/instrument_configurer.py +206 -0
  184. opentrons/hardware_control/protocols/liquid_handler.py +266 -0
  185. opentrons/hardware_control/protocols/module_provider.py +16 -0
  186. opentrons/hardware_control/protocols/motion_controller.py +243 -0
  187. opentrons/hardware_control/protocols/position_estimator.py +45 -0
  188. opentrons/hardware_control/protocols/simulatable.py +10 -0
  189. opentrons/hardware_control/protocols/stoppable.py +9 -0
  190. opentrons/hardware_control/protocols/types.py +27 -0
  191. opentrons/hardware_control/robot_calibration.py +224 -0
  192. opentrons/hardware_control/scripts/README.md +28 -0
  193. opentrons/hardware_control/scripts/__init__.py +1 -0
  194. opentrons/hardware_control/scripts/gripper_control.py +208 -0
  195. opentrons/hardware_control/scripts/ot3gripper +7 -0
  196. opentrons/hardware_control/scripts/ot3repl +7 -0
  197. opentrons/hardware_control/scripts/repl.py +187 -0
  198. opentrons/hardware_control/scripts/tc_control.py +97 -0
  199. opentrons/hardware_control/simulator_setup.py +260 -0
  200. opentrons/hardware_control/thread_manager.py +431 -0
  201. opentrons/hardware_control/threaded_async_lock.py +97 -0
  202. opentrons/hardware_control/types.py +792 -0
  203. opentrons/hardware_control/util.py +234 -0
  204. opentrons/legacy_broker.py +53 -0
  205. opentrons/legacy_commands/__init__.py +1 -0
  206. opentrons/legacy_commands/commands.py +483 -0
  207. opentrons/legacy_commands/helpers.py +153 -0
  208. opentrons/legacy_commands/module_commands.py +215 -0
  209. opentrons/legacy_commands/protocol_commands.py +54 -0
  210. opentrons/legacy_commands/publisher.py +155 -0
  211. opentrons/legacy_commands/robot_commands.py +51 -0
  212. opentrons/legacy_commands/types.py +1115 -0
  213. opentrons/motion_planning/__init__.py +32 -0
  214. opentrons/motion_planning/adjacent_slots_getters.py +168 -0
  215. opentrons/motion_planning/deck_conflict.py +396 -0
  216. opentrons/motion_planning/errors.py +35 -0
  217. opentrons/motion_planning/types.py +42 -0
  218. opentrons/motion_planning/waypoints.py +218 -0
  219. opentrons/ordered_set.py +138 -0
  220. opentrons/protocol_api/__init__.py +105 -0
  221. opentrons/protocol_api/_liquid.py +157 -0
  222. opentrons/protocol_api/_liquid_properties.py +814 -0
  223. opentrons/protocol_api/_nozzle_layout.py +31 -0
  224. opentrons/protocol_api/_parameter_context.py +300 -0
  225. opentrons/protocol_api/_parameters.py +31 -0
  226. opentrons/protocol_api/_transfer_liquid_validation.py +108 -0
  227. opentrons/protocol_api/_types.py +43 -0
  228. opentrons/protocol_api/config.py +23 -0
  229. opentrons/protocol_api/core/__init__.py +23 -0
  230. opentrons/protocol_api/core/common.py +33 -0
  231. opentrons/protocol_api/core/core_map.py +74 -0
  232. opentrons/protocol_api/core/engine/__init__.py +22 -0
  233. opentrons/protocol_api/core/engine/_default_labware_versions.py +179 -0
  234. opentrons/protocol_api/core/engine/deck_conflict.py +348 -0
  235. opentrons/protocol_api/core/engine/exceptions.py +19 -0
  236. opentrons/protocol_api/core/engine/instrument.py +2391 -0
  237. opentrons/protocol_api/core/engine/labware.py +238 -0
  238. opentrons/protocol_api/core/engine/load_labware_params.py +73 -0
  239. opentrons/protocol_api/core/engine/module_core.py +1025 -0
  240. opentrons/protocol_api/core/engine/overlap_versions.py +20 -0
  241. opentrons/protocol_api/core/engine/pipette_movement_conflict.py +358 -0
  242. opentrons/protocol_api/core/engine/point_calculations.py +64 -0
  243. opentrons/protocol_api/core/engine/protocol.py +1153 -0
  244. opentrons/protocol_api/core/engine/robot.py +139 -0
  245. opentrons/protocol_api/core/engine/stringify.py +74 -0
  246. opentrons/protocol_api/core/engine/transfer_components_executor.py +990 -0
  247. opentrons/protocol_api/core/engine/well.py +241 -0
  248. opentrons/protocol_api/core/instrument.py +459 -0
  249. opentrons/protocol_api/core/labware.py +151 -0
  250. opentrons/protocol_api/core/legacy/__init__.py +11 -0
  251. opentrons/protocol_api/core/legacy/_labware_geometry.py +37 -0
  252. opentrons/protocol_api/core/legacy/deck.py +369 -0
  253. opentrons/protocol_api/core/legacy/labware_offset_provider.py +108 -0
  254. opentrons/protocol_api/core/legacy/legacy_instrument_core.py +709 -0
  255. opentrons/protocol_api/core/legacy/legacy_labware_core.py +235 -0
  256. opentrons/protocol_api/core/legacy/legacy_module_core.py +592 -0
  257. opentrons/protocol_api/core/legacy/legacy_protocol_core.py +612 -0
  258. opentrons/protocol_api/core/legacy/legacy_well_core.py +162 -0
  259. opentrons/protocol_api/core/legacy/load_info.py +67 -0
  260. opentrons/protocol_api/core/legacy/module_geometry.py +547 -0
  261. opentrons/protocol_api/core/legacy/well_geometry.py +148 -0
  262. opentrons/protocol_api/core/legacy_simulator/__init__.py +16 -0
  263. opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +624 -0
  264. opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +85 -0
  265. opentrons/protocol_api/core/module.py +484 -0
  266. opentrons/protocol_api/core/protocol.py +311 -0
  267. opentrons/protocol_api/core/robot.py +51 -0
  268. opentrons/protocol_api/core/well.py +116 -0
  269. opentrons/protocol_api/core/well_grid.py +45 -0
  270. opentrons/protocol_api/create_protocol_context.py +177 -0
  271. opentrons/protocol_api/deck.py +223 -0
  272. opentrons/protocol_api/disposal_locations.py +244 -0
  273. opentrons/protocol_api/instrument_context.py +3212 -0
  274. opentrons/protocol_api/labware.py +1579 -0
  275. opentrons/protocol_api/module_contexts.py +1425 -0
  276. opentrons/protocol_api/module_validation_and_errors.py +61 -0
  277. opentrons/protocol_api/protocol_context.py +1688 -0
  278. opentrons/protocol_api/robot_context.py +303 -0
  279. opentrons/protocol_api/validation.py +761 -0
  280. opentrons/protocol_engine/__init__.py +155 -0
  281. opentrons/protocol_engine/actions/__init__.py +65 -0
  282. opentrons/protocol_engine/actions/action_dispatcher.py +30 -0
  283. opentrons/protocol_engine/actions/action_handler.py +13 -0
  284. opentrons/protocol_engine/actions/actions.py +302 -0
  285. opentrons/protocol_engine/actions/get_state_update.py +38 -0
  286. opentrons/protocol_engine/clients/__init__.py +5 -0
  287. opentrons/protocol_engine/clients/sync_client.py +174 -0
  288. opentrons/protocol_engine/clients/transports.py +197 -0
  289. opentrons/protocol_engine/commands/__init__.py +757 -0
  290. opentrons/protocol_engine/commands/absorbance_reader/__init__.py +61 -0
  291. opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +154 -0
  292. opentrons/protocol_engine/commands/absorbance_reader/common.py +6 -0
  293. opentrons/protocol_engine/commands/absorbance_reader/initialize.py +151 -0
  294. opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +154 -0
  295. opentrons/protocol_engine/commands/absorbance_reader/read.py +226 -0
  296. opentrons/protocol_engine/commands/air_gap_in_place.py +162 -0
  297. opentrons/protocol_engine/commands/aspirate.py +244 -0
  298. opentrons/protocol_engine/commands/aspirate_in_place.py +184 -0
  299. opentrons/protocol_engine/commands/aspirate_while_tracking.py +211 -0
  300. opentrons/protocol_engine/commands/blow_out.py +146 -0
  301. opentrons/protocol_engine/commands/blow_out_in_place.py +119 -0
  302. opentrons/protocol_engine/commands/calibration/__init__.py +60 -0
  303. opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +166 -0
  304. opentrons/protocol_engine/commands/calibration/calibrate_module.py +117 -0
  305. opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +96 -0
  306. opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +156 -0
  307. opentrons/protocol_engine/commands/command.py +308 -0
  308. opentrons/protocol_engine/commands/command_unions.py +974 -0
  309. opentrons/protocol_engine/commands/comment.py +57 -0
  310. opentrons/protocol_engine/commands/configure_for_volume.py +108 -0
  311. opentrons/protocol_engine/commands/configure_nozzle_layout.py +115 -0
  312. opentrons/protocol_engine/commands/custom.py +67 -0
  313. opentrons/protocol_engine/commands/dispense.py +194 -0
  314. opentrons/protocol_engine/commands/dispense_in_place.py +179 -0
  315. opentrons/protocol_engine/commands/dispense_while_tracking.py +204 -0
  316. opentrons/protocol_engine/commands/drop_tip.py +232 -0
  317. opentrons/protocol_engine/commands/drop_tip_in_place.py +205 -0
  318. opentrons/protocol_engine/commands/flex_stacker/__init__.py +64 -0
  319. opentrons/protocol_engine/commands/flex_stacker/common.py +900 -0
  320. opentrons/protocol_engine/commands/flex_stacker/empty.py +293 -0
  321. opentrons/protocol_engine/commands/flex_stacker/fill.py +281 -0
  322. opentrons/protocol_engine/commands/flex_stacker/retrieve.py +339 -0
  323. opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +328 -0
  324. opentrons/protocol_engine/commands/flex_stacker/store.py +326 -0
  325. opentrons/protocol_engine/commands/generate_command_schema.py +61 -0
  326. opentrons/protocol_engine/commands/get_next_tip.py +134 -0
  327. opentrons/protocol_engine/commands/get_tip_presence.py +87 -0
  328. opentrons/protocol_engine/commands/hash_command_params.py +38 -0
  329. opentrons/protocol_engine/commands/heater_shaker/__init__.py +102 -0
  330. opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +83 -0
  331. opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +82 -0
  332. opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +84 -0
  333. opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +110 -0
  334. opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +125 -0
  335. opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +90 -0
  336. opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +102 -0
  337. opentrons/protocol_engine/commands/home.py +100 -0
  338. opentrons/protocol_engine/commands/identify_module.py +86 -0
  339. opentrons/protocol_engine/commands/labware_handling_common.py +29 -0
  340. opentrons/protocol_engine/commands/liquid_probe.py +464 -0
  341. opentrons/protocol_engine/commands/load_labware.py +210 -0
  342. opentrons/protocol_engine/commands/load_lid.py +154 -0
  343. opentrons/protocol_engine/commands/load_lid_stack.py +272 -0
  344. opentrons/protocol_engine/commands/load_liquid.py +95 -0
  345. opentrons/protocol_engine/commands/load_liquid_class.py +144 -0
  346. opentrons/protocol_engine/commands/load_module.py +223 -0
  347. opentrons/protocol_engine/commands/load_pipette.py +167 -0
  348. opentrons/protocol_engine/commands/magnetic_module/__init__.py +32 -0
  349. opentrons/protocol_engine/commands/magnetic_module/disengage.py +97 -0
  350. opentrons/protocol_engine/commands/magnetic_module/engage.py +119 -0
  351. opentrons/protocol_engine/commands/move_labware.py +546 -0
  352. opentrons/protocol_engine/commands/move_relative.py +102 -0
  353. opentrons/protocol_engine/commands/move_to_addressable_area.py +176 -0
  354. opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +198 -0
  355. opentrons/protocol_engine/commands/move_to_coordinates.py +107 -0
  356. opentrons/protocol_engine/commands/move_to_well.py +119 -0
  357. opentrons/protocol_engine/commands/movement_common.py +338 -0
  358. opentrons/protocol_engine/commands/pick_up_tip.py +241 -0
  359. opentrons/protocol_engine/commands/pipetting_common.py +443 -0
  360. opentrons/protocol_engine/commands/prepare_to_aspirate.py +121 -0
  361. opentrons/protocol_engine/commands/pressure_dispense.py +155 -0
  362. opentrons/protocol_engine/commands/reload_labware.py +90 -0
  363. opentrons/protocol_engine/commands/retract_axis.py +75 -0
  364. opentrons/protocol_engine/commands/robot/__init__.py +70 -0
  365. opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +96 -0
  366. opentrons/protocol_engine/commands/robot/common.py +18 -0
  367. opentrons/protocol_engine/commands/robot/move_axes_relative.py +101 -0
  368. opentrons/protocol_engine/commands/robot/move_axes_to.py +100 -0
  369. opentrons/protocol_engine/commands/robot/move_to.py +94 -0
  370. opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +86 -0
  371. opentrons/protocol_engine/commands/save_position.py +109 -0
  372. opentrons/protocol_engine/commands/seal_pipette_to_tip.py +353 -0
  373. opentrons/protocol_engine/commands/set_rail_lights.py +67 -0
  374. opentrons/protocol_engine/commands/set_status_bar.py +89 -0
  375. opentrons/protocol_engine/commands/temperature_module/__init__.py +46 -0
  376. opentrons/protocol_engine/commands/temperature_module/deactivate.py +86 -0
  377. opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +97 -0
  378. opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +104 -0
  379. opentrons/protocol_engine/commands/thermocycler/__init__.py +152 -0
  380. opentrons/protocol_engine/commands/thermocycler/close_lid.py +87 -0
  381. opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +80 -0
  382. opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +80 -0
  383. opentrons/protocol_engine/commands/thermocycler/open_lid.py +87 -0
  384. opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +171 -0
  385. opentrons/protocol_engine/commands/thermocycler/run_profile.py +124 -0
  386. opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +140 -0
  387. opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +100 -0
  388. opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +93 -0
  389. opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +89 -0
  390. opentrons/protocol_engine/commands/touch_tip.py +189 -0
  391. opentrons/protocol_engine/commands/unsafe/__init__.py +161 -0
  392. opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +100 -0
  393. opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +121 -0
  394. opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +82 -0
  395. opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +208 -0
  396. opentrons/protocol_engine/commands/unsafe/unsafe_stacker_close_latch.py +94 -0
  397. opentrons/protocol_engine/commands/unsafe/unsafe_stacker_manual_retrieve.py +295 -0
  398. opentrons/protocol_engine/commands/unsafe/unsafe_stacker_open_latch.py +91 -0
  399. opentrons/protocol_engine/commands/unsafe/unsafe_stacker_prepare_shuttle.py +136 -0
  400. opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +77 -0
  401. opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +90 -0
  402. opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +153 -0
  403. opentrons/protocol_engine/commands/verify_tip_presence.py +100 -0
  404. opentrons/protocol_engine/commands/wait_for_duration.py +76 -0
  405. opentrons/protocol_engine/commands/wait_for_resume.py +75 -0
  406. opentrons/protocol_engine/create_protocol_engine.py +193 -0
  407. opentrons/protocol_engine/engine_support.py +28 -0
  408. opentrons/protocol_engine/error_recovery_policy.py +81 -0
  409. opentrons/protocol_engine/errors/__init__.py +191 -0
  410. opentrons/protocol_engine/errors/error_occurrence.py +182 -0
  411. opentrons/protocol_engine/errors/exceptions.py +1308 -0
  412. opentrons/protocol_engine/execution/__init__.py +50 -0
  413. opentrons/protocol_engine/execution/command_executor.py +216 -0
  414. opentrons/protocol_engine/execution/create_queue_worker.py +102 -0
  415. opentrons/protocol_engine/execution/door_watcher.py +119 -0
  416. opentrons/protocol_engine/execution/equipment.py +819 -0
  417. opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +101 -0
  418. opentrons/protocol_engine/execution/gantry_mover.py +686 -0
  419. opentrons/protocol_engine/execution/hardware_stopper.py +147 -0
  420. opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +207 -0
  421. opentrons/protocol_engine/execution/labware_movement.py +297 -0
  422. opentrons/protocol_engine/execution/movement.py +349 -0
  423. opentrons/protocol_engine/execution/pipetting.py +607 -0
  424. opentrons/protocol_engine/execution/queue_worker.py +86 -0
  425. opentrons/protocol_engine/execution/rail_lights.py +25 -0
  426. opentrons/protocol_engine/execution/run_control.py +33 -0
  427. opentrons/protocol_engine/execution/status_bar.py +34 -0
  428. opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +188 -0
  429. opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +81 -0
  430. opentrons/protocol_engine/execution/tip_handler.py +550 -0
  431. opentrons/protocol_engine/labware_offset_standardization.py +194 -0
  432. opentrons/protocol_engine/notes/__init__.py +17 -0
  433. opentrons/protocol_engine/notes/notes.py +59 -0
  434. opentrons/protocol_engine/plugins.py +104 -0
  435. opentrons/protocol_engine/protocol_engine.py +683 -0
  436. opentrons/protocol_engine/resources/__init__.py +26 -0
  437. opentrons/protocol_engine/resources/deck_configuration_provider.py +232 -0
  438. opentrons/protocol_engine/resources/deck_data_provider.py +94 -0
  439. opentrons/protocol_engine/resources/file_provider.py +161 -0
  440. opentrons/protocol_engine/resources/fixture_validation.py +58 -0
  441. opentrons/protocol_engine/resources/labware_data_provider.py +106 -0
  442. opentrons/protocol_engine/resources/labware_validation.py +73 -0
  443. opentrons/protocol_engine/resources/model_utils.py +32 -0
  444. opentrons/protocol_engine/resources/module_data_provider.py +44 -0
  445. opentrons/protocol_engine/resources/ot3_validation.py +21 -0
  446. opentrons/protocol_engine/resources/pipette_data_provider.py +379 -0
  447. opentrons/protocol_engine/slot_standardization.py +128 -0
  448. opentrons/protocol_engine/state/__init__.py +1 -0
  449. opentrons/protocol_engine/state/_abstract_store.py +27 -0
  450. opentrons/protocol_engine/state/_axis_aligned_bounding_box.py +50 -0
  451. opentrons/protocol_engine/state/_labware_origin_math.py +636 -0
  452. opentrons/protocol_engine/state/_move_types.py +83 -0
  453. opentrons/protocol_engine/state/_well_math.py +193 -0
  454. opentrons/protocol_engine/state/addressable_areas.py +699 -0
  455. opentrons/protocol_engine/state/command_history.py +309 -0
  456. opentrons/protocol_engine/state/commands.py +1158 -0
  457. opentrons/protocol_engine/state/config.py +39 -0
  458. opentrons/protocol_engine/state/files.py +57 -0
  459. opentrons/protocol_engine/state/fluid_stack.py +138 -0
  460. opentrons/protocol_engine/state/geometry.py +2359 -0
  461. opentrons/protocol_engine/state/inner_well_math_utils.py +548 -0
  462. opentrons/protocol_engine/state/labware.py +1459 -0
  463. opentrons/protocol_engine/state/liquid_classes.py +82 -0
  464. opentrons/protocol_engine/state/liquids.py +73 -0
  465. opentrons/protocol_engine/state/module_substates/__init__.py +45 -0
  466. opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +35 -0
  467. opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +112 -0
  468. opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +115 -0
  469. opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +17 -0
  470. opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +65 -0
  471. opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +67 -0
  472. opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +163 -0
  473. opentrons/protocol_engine/state/modules.py +1500 -0
  474. opentrons/protocol_engine/state/motion.py +373 -0
  475. opentrons/protocol_engine/state/pipettes.py +905 -0
  476. opentrons/protocol_engine/state/state.py +421 -0
  477. opentrons/protocol_engine/state/state_summary.py +36 -0
  478. opentrons/protocol_engine/state/tips.py +420 -0
  479. opentrons/protocol_engine/state/update_types.py +904 -0
  480. opentrons/protocol_engine/state/wells.py +290 -0
  481. opentrons/protocol_engine/types/__init__.py +308 -0
  482. opentrons/protocol_engine/types/automatic_tip_selection.py +39 -0
  483. opentrons/protocol_engine/types/command_annotations.py +53 -0
  484. opentrons/protocol_engine/types/deck_configuration.py +81 -0
  485. opentrons/protocol_engine/types/execution.py +96 -0
  486. opentrons/protocol_engine/types/hardware_passthrough.py +25 -0
  487. opentrons/protocol_engine/types/instrument.py +47 -0
  488. opentrons/protocol_engine/types/instrument_sensors.py +47 -0
  489. opentrons/protocol_engine/types/labware.py +131 -0
  490. opentrons/protocol_engine/types/labware_movement.py +22 -0
  491. opentrons/protocol_engine/types/labware_offset_location.py +111 -0
  492. opentrons/protocol_engine/types/labware_offset_vector.py +16 -0
  493. opentrons/protocol_engine/types/liquid.py +40 -0
  494. opentrons/protocol_engine/types/liquid_class.py +59 -0
  495. opentrons/protocol_engine/types/liquid_handling.py +13 -0
  496. opentrons/protocol_engine/types/liquid_level_detection.py +191 -0
  497. opentrons/protocol_engine/types/location.py +194 -0
  498. opentrons/protocol_engine/types/module.py +303 -0
  499. opentrons/protocol_engine/types/partial_tip_configuration.py +76 -0
  500. opentrons/protocol_engine/types/run_time_parameters.py +133 -0
  501. opentrons/protocol_engine/types/tip.py +18 -0
  502. opentrons/protocol_engine/types/util.py +21 -0
  503. opentrons/protocol_engine/types/well_position.py +124 -0
  504. opentrons/protocol_reader/__init__.py +37 -0
  505. opentrons/protocol_reader/extract_labware_definitions.py +66 -0
  506. opentrons/protocol_reader/file_format_validator.py +152 -0
  507. opentrons/protocol_reader/file_hasher.py +27 -0
  508. opentrons/protocol_reader/file_identifier.py +284 -0
  509. opentrons/protocol_reader/file_reader_writer.py +90 -0
  510. opentrons/protocol_reader/input_file.py +16 -0
  511. opentrons/protocol_reader/protocol_files_invalid_error.py +6 -0
  512. opentrons/protocol_reader/protocol_reader.py +188 -0
  513. opentrons/protocol_reader/protocol_source.py +124 -0
  514. opentrons/protocol_reader/role_analyzer.py +86 -0
  515. opentrons/protocol_runner/__init__.py +26 -0
  516. opentrons/protocol_runner/create_simulating_orchestrator.py +118 -0
  517. opentrons/protocol_runner/json_file_reader.py +55 -0
  518. opentrons/protocol_runner/json_translator.py +314 -0
  519. opentrons/protocol_runner/legacy_command_mapper.py +848 -0
  520. opentrons/protocol_runner/legacy_context_plugin.py +116 -0
  521. opentrons/protocol_runner/protocol_runner.py +530 -0
  522. opentrons/protocol_runner/python_protocol_wrappers.py +179 -0
  523. opentrons/protocol_runner/run_orchestrator.py +496 -0
  524. opentrons/protocol_runner/task_queue.py +95 -0
  525. opentrons/protocols/__init__.py +6 -0
  526. opentrons/protocols/advanced_control/__init__.py +0 -0
  527. opentrons/protocols/advanced_control/common.py +38 -0
  528. opentrons/protocols/advanced_control/mix.py +60 -0
  529. opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  530. opentrons/protocols/advanced_control/transfers/common.py +180 -0
  531. opentrons/protocols/advanced_control/transfers/transfer.py +972 -0
  532. opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +231 -0
  533. opentrons/protocols/api_support/__init__.py +0 -0
  534. opentrons/protocols/api_support/constants.py +8 -0
  535. opentrons/protocols/api_support/deck_type.py +110 -0
  536. opentrons/protocols/api_support/definitions.py +18 -0
  537. opentrons/protocols/api_support/instrument.py +151 -0
  538. opentrons/protocols/api_support/labware_like.py +233 -0
  539. opentrons/protocols/api_support/tip_tracker.py +175 -0
  540. opentrons/protocols/api_support/types.py +32 -0
  541. opentrons/protocols/api_support/util.py +403 -0
  542. opentrons/protocols/bundle.py +89 -0
  543. opentrons/protocols/duration/__init__.py +4 -0
  544. opentrons/protocols/duration/errors.py +5 -0
  545. opentrons/protocols/duration/estimator.py +628 -0
  546. opentrons/protocols/execution/__init__.py +0 -0
  547. opentrons/protocols/execution/dev_types.py +181 -0
  548. opentrons/protocols/execution/errors.py +40 -0
  549. opentrons/protocols/execution/execute.py +84 -0
  550. opentrons/protocols/execution/execute_json_v3.py +275 -0
  551. opentrons/protocols/execution/execute_json_v4.py +359 -0
  552. opentrons/protocols/execution/execute_json_v5.py +28 -0
  553. opentrons/protocols/execution/execute_python.py +169 -0
  554. opentrons/protocols/execution/json_dispatchers.py +87 -0
  555. opentrons/protocols/execution/types.py +7 -0
  556. opentrons/protocols/geometry/__init__.py +0 -0
  557. opentrons/protocols/geometry/planning.py +297 -0
  558. opentrons/protocols/labware.py +312 -0
  559. opentrons/protocols/models/__init__.py +0 -0
  560. opentrons/protocols/models/json_protocol.py +679 -0
  561. opentrons/protocols/parameters/__init__.py +0 -0
  562. opentrons/protocols/parameters/csv_parameter_definition.py +77 -0
  563. opentrons/protocols/parameters/csv_parameter_interface.py +96 -0
  564. opentrons/protocols/parameters/exceptions.py +34 -0
  565. opentrons/protocols/parameters/parameter_definition.py +272 -0
  566. opentrons/protocols/parameters/types.py +17 -0
  567. opentrons/protocols/parameters/validation.py +267 -0
  568. opentrons/protocols/parse.py +671 -0
  569. opentrons/protocols/types.py +159 -0
  570. opentrons/py.typed +0 -0
  571. opentrons/resources/scripts/lpc21isp +0 -0
  572. opentrons/resources/smoothie-edge-8414642.hex +23010 -0
  573. opentrons/simulate.py +1065 -0
  574. opentrons/system/__init__.py +6 -0
  575. opentrons/system/camera.py +51 -0
  576. opentrons/system/log_control.py +59 -0
  577. opentrons/system/nmcli.py +856 -0
  578. opentrons/system/resin.py +24 -0
  579. opentrons/system/smoothie_update.py +15 -0
  580. opentrons/system/wifi.py +204 -0
  581. opentrons/tools/__init__.py +0 -0
  582. opentrons/tools/args_handler.py +22 -0
  583. opentrons/tools/write_pipette_memory.py +157 -0
  584. opentrons/types.py +618 -0
  585. opentrons/util/__init__.py +1 -0
  586. opentrons/util/async_helpers.py +166 -0
  587. opentrons/util/broker.py +84 -0
  588. opentrons/util/change_notifier.py +47 -0
  589. opentrons/util/entrypoint_util.py +278 -0
  590. opentrons/util/get_union_elements.py +26 -0
  591. opentrons/util/helpers.py +6 -0
  592. opentrons/util/linal.py +178 -0
  593. opentrons/util/logging_config.py +265 -0
  594. opentrons/util/logging_queue_handler.py +61 -0
  595. opentrons/util/performance_helpers.py +157 -0
  596. opentrons-8.6.0a1.dist-info/METADATA +37 -0
  597. opentrons-8.6.0a1.dist-info/RECORD +600 -0
  598. opentrons-8.6.0a1.dist-info/WHEEL +4 -0
  599. opentrons-8.6.0a1.dist-info/entry_points.txt +3 -0
  600. opentrons-8.6.0a1.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,1115 @@
1
+ from __future__ import annotations
2
+
3
+ from typing_extensions import Literal, Final, TypedDict
4
+ from typing import Optional, List, Sequence, TYPE_CHECKING, Union
5
+ from opentrons.hardware_control.modules import ThermocyclerStep
6
+
7
+ if TYPE_CHECKING:
8
+ from opentrons.protocol_api import InstrumentContext
9
+ from opentrons.protocol_api.labware import Well
10
+ from opentrons.protocol_api.disposal_locations import TrashBin, WasteChute
11
+ from opentrons.protocol_api._liquid import LiquidClass
12
+ from opentrons.protocol_api._nozzle_layout import NozzleLayout
13
+
14
+ from opentrons.types import Location, Mount, AxisMapType
15
+
16
+
17
+ # type for subscriptions
18
+ COMMAND: Final = "command"
19
+
20
+ # Robot #
21
+
22
+ DELAY: Final = "command.DELAY"
23
+ HOME: Final = "command.HOME"
24
+ PAUSE: Final = "command.PAUSE"
25
+ RESUME: Final = "command.RESUME"
26
+ COMMENT: Final = "command.COMMENT"
27
+ MOVE_LABWARE: Final = "command.MOVE_LABWARE"
28
+
29
+ # Pipette #
30
+
31
+ ASPIRATE: Final = "command.ASPIRATE"
32
+ DISPENSE: Final = "command.DISPENSE"
33
+ DISPENSE_IN_DISPOSAL_LOCATION: Final = "command.DISPENSE_IN_DISPOSAL_LOCATION"
34
+ MIX: Final = "command.MIX"
35
+ CONSOLIDATE: Final = "command.CONSOLIDATE"
36
+ DISTRIBUTE: Final = "command.DISTRIBUTE"
37
+ TRANSFER: Final = "command.TRANSFER"
38
+ PICK_UP_TIP: Final = "command.PICK_UP_TIP"
39
+ DROP_TIP: Final = "command.DROP_TIP"
40
+ DROP_TIP_IN_DISPOSAL_LOCATION: Final = "command.DROP_TIP_IN_DISPOSAL_LOCATION"
41
+ BLOW_OUT: Final = "command.BLOW_OUT"
42
+ BLOW_OUT_IN_DISPOSAL_LOCATION: Final = "command.BLOW_OUT_IN_DISPOSAL_LOCATION"
43
+ AIR_GAP: Final = "command.AIR_GAP"
44
+ TOUCH_TIP: Final = "command.TOUCH_TIP"
45
+ RETURN_TIP: Final = "command.RETURN_TIP"
46
+ MOVE_TO: Final = "command.MOVE_TO"
47
+ MOVE_TO_DISPOSAL_LOCATION: Final = "command.MOVE_TO_DISPOSAL_LOCATION"
48
+ TRANSFER_WITH_LIQUID_CLASS: Final = "command.TRANSFER_WITH_LIQUID_CLASS"
49
+ DISTRIBUTE_WITH_LIQUID_CLASS: Final = "command.DISTRIBUTE_WITH_LIQUID_CLASS"
50
+ CONSOLIDATE_WITH_LIQUID_CLASS: Final = "command.CONSOLIDATE_WITH_LIQUID_CLASS"
51
+ SEAL: Final = "command.SEAL"
52
+ UNSEAL: Final = "command.UNSEAL"
53
+ PRESSURIZE: Final = "command.PRESSURIZE"
54
+ CONFIGURE_FOR_VOLUME: Final = "command.CONFIGURE_FOR_VOLUME"
55
+ CONFIGURE_NOZZLE_LAYOUT: Final = "command.CONFIGURE_NOZZLE_LAYOUT"
56
+
57
+
58
+ # Modules #
59
+
60
+ HEATER_SHAKER_SET_TARGET_TEMPERATURE: Final = (
61
+ "command.HEATER_SHAKER_SET_TARGET_TEMPERATURE"
62
+ )
63
+ HEATER_SHAKER_WAIT_FOR_TEMPERATURE: Final = "command.HEATER_SHAKER_WAIT_FOR_TEMPERATURE"
64
+ HEATER_SHAKER_SET_AND_WAIT_FOR_SHAKE_SPEED: Final = (
65
+ "command.HEATER_SHAKER_SET_AND_WAIT_FOR_SHAKE_SPEED"
66
+ )
67
+ HEATER_SHAKER_OPEN_LABWARE_LATCH: Final = "command.HEATER_SHAKER_OPEN_LABWARE_LATCH"
68
+ HEATER_SHAKER_CLOSE_LABWARE_LATCH: Final = "command.HEATER_SHAKER_CLOSE_LABWARE_LATCH"
69
+ HEATER_SHAKER_DEACTIVATE_SHAKER: Final = "command.HEATER_SHAKER_DEACTIVATE_SHAKER"
70
+ HEATER_SHAKER_DEACTIVATE_HEATER: Final = "command.HEATER_SHAKER_DEACTIVATE_HEATER"
71
+
72
+ MAGDECK_CALIBRATE: Final = "command.MAGDECK_CALIBRATE"
73
+ MAGDECK_DISENGAGE: Final = "command.MAGDECK_DISENGAGE"
74
+ MAGDECK_ENGAGE: Final = "command.MAGDECK_ENGAGE"
75
+
76
+ TEMPDECK_DEACTIVATE: Final = "command.TEMPDECK_DEACTIVATE"
77
+ TEMPDECK_SET_TEMP: Final = "command.TEMPDECK_SET_TEMP"
78
+ TEMPDECK_AWAIT_TEMP: Final = "command.TEMPDECK_AWAIT_TEMP"
79
+
80
+ THERMOCYCLER_OPEN: Final = "command.THERMOCYCLER_OPEN"
81
+ THERMOCYCLER_CLOSE: Final = "command.THERMOCYCLER_CLOSE"
82
+ THERMOCYCLER_SET_BLOCK_TEMP: Final = "command.THERMOCYCLER_SET_BLOCK_TEMP"
83
+ THERMOCYCLER_EXECUTE_PROFILE: Final = "command.THERMOCYCLER_EXECUTE_PROFILE"
84
+ THERMOCYCLER_DEACTIVATE: Final = "command.THERMOCYCLER_DEACTIVATE"
85
+ THERMOCYCLER_WAIT_FOR_HOLD: Final = "command.THERMOCYCLER_WAIT_FOR_HOLD"
86
+ THERMOCYCLER_WAIT_FOR_TEMP: Final = "command.THERMOCYCLER_WAIT_FOR_TEMP"
87
+ THERMOCYCLER_WAIT_FOR_LID_TEMP: Final = "command.THERMOCYCLER_WAIT_FOR_LID_TEMP"
88
+ THERMOCYCLER_SET_LID_TEMP: Final = "command.THERMOCYCLER_SET_LID_TEMP"
89
+ THERMOCYCLER_DEACTIVATE_LID: Final = "command.THERMOCYCLER_DEACTIVATE_LID"
90
+ THERMOCYCLER_DEACTIVATE_BLOCK: Final = "command.THERMOCYCLER_DEACTIVATE_BLOCK"
91
+
92
+ # Robot #
93
+ ROBOT_MOVE_TO: Final = "command.ROBOT_MOVE_TO"
94
+ ROBOT_MOVE_AXES_TO: Final = "command.ROBOT_MOVE_AXES_TO"
95
+ ROBOT_MOVE_RELATIVE_TO: Final = "command.ROBOT_MOVE_RELATIVE_TO"
96
+ ROBOT_OPEN_GRIPPER_JAW: Final = "command.ROBOT_OPEN_GRIPPER_JAW"
97
+ ROBOT_CLOSE_GRIPPER_JAW: Final = "command.ROBOT_CLOSE_GRIPPER_JAW"
98
+
99
+
100
+ class TextOnlyPayload(TypedDict):
101
+ text: str
102
+
103
+
104
+ class MultiLocationPayload(TypedDict):
105
+ locations: Sequence[Union[Location, Well]]
106
+
107
+
108
+ class OptionalMultiLocationPayload(TypedDict):
109
+ locations: Optional[Sequence[Union[Location, Well]]]
110
+
111
+
112
+ class SingleInstrumentPayload(TypedDict):
113
+ instrument: InstrumentContext
114
+
115
+
116
+ class MultiInstrumentPayload(TypedDict):
117
+ instruments: Sequence[InstrumentContext]
118
+
119
+
120
+ class CommentCommandPayload(TextOnlyPayload):
121
+ pass
122
+
123
+
124
+ class CommentCommand(TypedDict):
125
+ name: Literal["command.COMMENT"]
126
+ payload: CommentCommandPayload
127
+
128
+
129
+ class DelayCommandPayload(TextOnlyPayload):
130
+ minutes: float
131
+ seconds: float
132
+
133
+
134
+ class DelayCommand(TypedDict):
135
+ name: Literal["command.DELAY"]
136
+ payload: DelayCommandPayload
137
+
138
+
139
+ class PauseCommandPayload(TextOnlyPayload):
140
+ userMessage: Optional[str]
141
+
142
+
143
+ class PauseCommand(TypedDict):
144
+ name: Literal["command.PAUSE"]
145
+ payload: PauseCommandPayload
146
+
147
+
148
+ class ResumeCommandPayload(TextOnlyPayload):
149
+ pass
150
+
151
+
152
+ class ResumeCommand(TypedDict):
153
+ name: Literal["command.RESUME"]
154
+ payload: ResumeCommandPayload
155
+
156
+
157
+ class HeaterShakerSetTargetTemperaturePayload(TextOnlyPayload):
158
+ pass
159
+
160
+
161
+ class HeaterShakerSetTargetTemperatureCommand(TypedDict):
162
+ name: Literal["command.HEATER_SHAKER_SET_TARGET_TEMPERATURE"]
163
+ payload: HeaterShakerSetTargetTemperaturePayload
164
+
165
+
166
+ class HeaterShakerWaitForTemperaturePayload(TextOnlyPayload):
167
+ pass
168
+
169
+
170
+ class HeaterShakerWaitForTemperatureCommand(TypedDict):
171
+ name: Literal["command.HEATER_SHAKER_WAIT_FOR_TEMPERATURE"]
172
+ payload: HeaterShakerWaitForTemperaturePayload
173
+
174
+
175
+ class HeaterShakerSetAndWaitForShakeSpeedPayload(TextOnlyPayload):
176
+ pass
177
+
178
+
179
+ class HeaterShakerSetAndWaitForShakeSpeedCommand(TypedDict):
180
+ name: Literal["command.HEATER_SHAKER_SET_AND_WAIT_FOR_SHAKE_SPEED"]
181
+ payload: HeaterShakerSetAndWaitForShakeSpeedPayload
182
+
183
+
184
+ class HeaterShakerOpenLabwareLatchPayload(TextOnlyPayload):
185
+ pass
186
+
187
+
188
+ class HeaterShakerOpenLabwareLatchCommand(TypedDict):
189
+ name: Literal["command.HEATER_SHAKER_OPEN_LABWARE_LATCH"]
190
+ payload: HeaterShakerOpenLabwareLatchPayload
191
+
192
+
193
+ class HeaterShakerCloseLabwareLatchPayload(TextOnlyPayload):
194
+ pass
195
+
196
+
197
+ class HeaterShakerCloseLabwareLatchCommand(TypedDict):
198
+ name: Literal["command.HEATER_SHAKER_CLOSE_LABWARE_LATCH"]
199
+ payload: HeaterShakerCloseLabwareLatchPayload
200
+
201
+
202
+ class HeaterShakerDeactivateShakerPayload(TextOnlyPayload):
203
+ pass
204
+
205
+
206
+ class HeaterShakerDeactivateShakerCommand(TypedDict):
207
+ name: Literal["command.HEATER_SHAKER_DEACTIVATE_SHAKER"]
208
+ payload: HeaterShakerDeactivateShakerPayload
209
+
210
+
211
+ class HeaterShakerDeactivateHeaterPayload(TextOnlyPayload):
212
+ pass
213
+
214
+
215
+ class HeaterShakerDeactivateHeaterCommand(TypedDict):
216
+ name: Literal["command.HEATER_SHAKER_DEACTIVATE_HEATER"]
217
+ payload: HeaterShakerDeactivateHeaterPayload
218
+
219
+
220
+ class MagdeckEngageCommandPayload(TextOnlyPayload):
221
+ pass
222
+
223
+
224
+ class MagdeckEngageCommand(TypedDict):
225
+ name: Literal["command.MAGDECK_ENGAGE"]
226
+ payload: MagdeckEngageCommandPayload
227
+
228
+
229
+ class MagdeckDisengageCommandPayload(TextOnlyPayload):
230
+ pass
231
+
232
+
233
+ class MagdeckDisengageCommand(TypedDict):
234
+ name: Literal["command.MAGDECK_DISENGAGE"]
235
+ payload: MagdeckDisengageCommandPayload
236
+
237
+
238
+ class MagdeckCalibrateCommandPayload(TextOnlyPayload):
239
+ pass
240
+
241
+
242
+ class MagdeckCalibrateCommand(TypedDict):
243
+ name: Literal["command.MAGDECK_CALIBRATE"]
244
+ payload: MagdeckCalibrateCommandPayload
245
+
246
+
247
+ class TempdeckSetTempCommandPayload(TextOnlyPayload):
248
+ celsius: float
249
+
250
+
251
+ class TempdeckSetTempCommand(TypedDict):
252
+ name: Literal["command.TEMPDECK_SET_TEMP"]
253
+ payload: TempdeckSetTempCommandPayload
254
+
255
+
256
+ class TempdeckAwaitTempCommandPayload(TextOnlyPayload):
257
+ celsius: float
258
+
259
+
260
+ class TempdeckAwaitTempCommand(TypedDict):
261
+ name: Literal["command.TEMPDECK_AWAIT_TEMP"]
262
+ payload: TempdeckAwaitTempCommandPayload
263
+
264
+
265
+ class TempdeckDeactivateCommandPayload(TextOnlyPayload):
266
+ pass
267
+
268
+
269
+ class TempdeckDeactivateCommand(TypedDict):
270
+ name: Literal["command.TEMPDECK_DEACTIVATE"]
271
+ payload: TempdeckDeactivateCommandPayload
272
+
273
+
274
+ class ThermocyclerOpenCommandPayload(TextOnlyPayload):
275
+ pass
276
+
277
+
278
+ class ThermocyclerOpenCommand(TypedDict):
279
+ name: Literal["command.THERMOCYCLER_OPEN"]
280
+ payload: ThermocyclerOpenCommandPayload
281
+
282
+
283
+ class ThermocyclerSetBlockTempCommandPayload(TextOnlyPayload):
284
+ temperature: float
285
+ hold_time: Optional[float]
286
+
287
+
288
+ class ThermocyclerSetBlockTempCommand(TypedDict):
289
+ name: Literal["command.THERMOCYCLER_SET_BLOCK_TEMP"]
290
+ payload: ThermocyclerSetBlockTempCommandPayload
291
+
292
+
293
+ class ThermocyclerExecuteProfileCommandPayload(TextOnlyPayload):
294
+ steps: List[ThermocyclerStep]
295
+
296
+
297
+ class ThermocyclerExecuteProfileCommand(TypedDict):
298
+ name: Literal["command.THERMOCYCLER_EXECUTE_PROFILE"]
299
+ payload: ThermocyclerExecuteProfileCommandPayload
300
+
301
+
302
+ class ThermocyclerWaitForHoldCommandPayload(TextOnlyPayload):
303
+ pass
304
+
305
+
306
+ class ThermocyclerWaitForHoldCommand(TypedDict):
307
+ name: Literal["command.THERMOCYCLER_WAIT_FOR_HOLD"]
308
+ payload: ThermocyclerWaitForHoldCommandPayload
309
+
310
+
311
+ class ThermocyclerWaitForTempCommandPayload(TextOnlyPayload):
312
+ pass
313
+
314
+
315
+ class ThermocyclerWaitForTempCommand(TypedDict):
316
+ name: Literal["command.THERMOCYCLER_WAIT_FOR_TEMP"]
317
+ payload: ThermocyclerWaitForTempCommandPayload
318
+
319
+
320
+ class ThermocyclerSetLidTempCommandPayload(TextOnlyPayload):
321
+ pass
322
+
323
+
324
+ class ThermocyclerSetLidTempCommand(TypedDict):
325
+ name: Literal["command.THERMOCYCLER_SET_LID_TEMP"]
326
+ payload: ThermocyclerSetLidTempCommandPayload
327
+
328
+
329
+ class ThermocyclerDeactivateLidCommandPayload(TextOnlyPayload):
330
+ pass
331
+
332
+
333
+ class ThermocyclerDeactivateLidCommand(TypedDict):
334
+ name: Literal["command.THERMOCYCLER_DEACTIVATE_LID"]
335
+ payload: ThermocyclerDeactivateLidCommandPayload
336
+
337
+
338
+ class ThermocyclerDeactivateBlockCommandPayload(TextOnlyPayload):
339
+ pass
340
+
341
+
342
+ class ThermocyclerDeactivateBlockCommand(TypedDict):
343
+ name: Literal["command.THERMOCYCLER_DEACTIVATE_BLOCK"]
344
+ payload: ThermocyclerDeactivateBlockCommandPayload
345
+
346
+
347
+ class ThermocyclerDeactivateCommandPayload(TextOnlyPayload):
348
+ pass
349
+
350
+
351
+ class ThermocyclerDeactivateCommand(TypedDict):
352
+ name: Literal["command.THERMOCYCLER_DEACTIVATE"]
353
+ payload: ThermocyclerDeactivateCommandPayload
354
+
355
+
356
+ class ThermocyclerWaitForLidTempCommandPayload(TextOnlyPayload):
357
+ pass
358
+
359
+
360
+ class ThermocyclerWaitForLidTempCommand(TypedDict):
361
+ name: Literal["command.THERMOCYCLER_WAIT_FOR_LID_TEMP"]
362
+ payload: ThermocyclerWaitForLidTempCommandPayload
363
+
364
+
365
+ class ThermocyclerCloseCommandPayload(TextOnlyPayload):
366
+ pass
367
+
368
+
369
+ class ThermocyclerCloseCommand(TypedDict):
370
+ name: Literal["command.THERMOCYCLER_CLOSE"]
371
+ payload: ThermocyclerCloseCommandPayload
372
+
373
+
374
+ class HomeCommandPayload(TextOnlyPayload):
375
+ axis: str
376
+
377
+
378
+ class HomeCommand(TypedDict):
379
+ name: Literal["command.HOME"]
380
+ payload: HomeCommandPayload
381
+
382
+
383
+ class AspirateDispenseCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
384
+ location: Location
385
+ volume: float
386
+ rate: float
387
+
388
+
389
+ class AspirateCommand(TypedDict):
390
+ name: Literal["command.ASPIRATE"]
391
+ payload: AspirateDispenseCommandPayload
392
+
393
+
394
+ class DispenseCommand(TypedDict):
395
+ name: Literal["command.DISPENSE"]
396
+ payload: AspirateDispenseCommandPayload
397
+
398
+
399
+ class DispenseInDisposalLocationCommandPayload(
400
+ TextOnlyPayload, SingleInstrumentPayload
401
+ ):
402
+ location: Union[TrashBin, WasteChute]
403
+ volume: float
404
+ rate: float
405
+
406
+
407
+ class DispenseInDisposalLocationCommand(TypedDict):
408
+ name: Literal["command.DISPENSE_IN_DISPOSAL_LOCATION"]
409
+ payload: DispenseInDisposalLocationCommandPayload
410
+
411
+
412
+ class ConsolidateCommandPayload(
413
+ TextOnlyPayload, MultiLocationPayload, SingleInstrumentPayload
414
+ ):
415
+ volume: Union[float, List[float]]
416
+ source: List[Union[Location, Well]]
417
+ dest: Union[Location, Well]
418
+
419
+
420
+ class ConsolidateCommand(TypedDict):
421
+ name: Literal["command.CONSOLIDATE"]
422
+ payload: ConsolidateCommandPayload
423
+
424
+
425
+ class DistributeCommandPayload(
426
+ TextOnlyPayload, MultiLocationPayload, SingleInstrumentPayload
427
+ ):
428
+ volume: Union[float, List[float]]
429
+ source: Union[Location, Well]
430
+ dest: List[Union[Location, Well]]
431
+
432
+
433
+ class DistributeCommand(TypedDict):
434
+ name: Literal["command.DISTRIBUTE"]
435
+ payload: DistributeCommandPayload
436
+
437
+
438
+ class TransferCommandPayload(
439
+ TextOnlyPayload, MultiLocationPayload, SingleInstrumentPayload
440
+ ):
441
+ volume: Union[float, List[float]]
442
+ source: List[Union[Location, Well]]
443
+ dest: List[Union[Location, Well]]
444
+
445
+
446
+ class TransferCommand(TypedDict):
447
+ name: Literal["command.TRANSFER"]
448
+ payload: TransferCommandPayload
449
+
450
+
451
+ class MixCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
452
+ location: Union[None, Location, Well]
453
+ volume: float
454
+ repetitions: int
455
+
456
+
457
+ class MixCommand(TypedDict):
458
+ name: Literal["command.MIX"]
459
+ payload: MixCommandPayload
460
+
461
+
462
+ class BlowOutCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
463
+ location: Optional[Location]
464
+
465
+
466
+ class BlowOutCommand(TypedDict):
467
+ name: Literal["command.BLOW_OUT"]
468
+ payload: BlowOutCommandPayload
469
+
470
+
471
+ class BlowOutInDisposalLocationCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
472
+ location: Union[TrashBin, WasteChute]
473
+
474
+
475
+ class BlowOutInDisposalLocationCommand(TypedDict):
476
+ name: Literal["command.BLOW_OUT_IN_DISPOSAL_LOCATION"]
477
+ payload: BlowOutInDisposalLocationCommandPayload
478
+
479
+
480
+ class TouchTipCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
481
+ pass
482
+
483
+
484
+ class TouchTipCommand(TypedDict):
485
+ name: Literal["command.TOUCH_TIP"]
486
+ payload: TouchTipCommandPayload
487
+
488
+
489
+ class AirGapCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
490
+ volume: Union[float, None]
491
+ height: Union[float, None]
492
+
493
+
494
+ class AirGapCommand(TypedDict):
495
+ name: Literal["command.AIR_GAP"]
496
+ payload: AirGapCommandPayload
497
+
498
+
499
+ class ReturnTipCommandPayload(TextOnlyPayload):
500
+ pass
501
+
502
+
503
+ class ReturnTipCommand(TypedDict):
504
+ name: Literal["command.RETURN_TIP"]
505
+ payload: ReturnTipCommandPayload
506
+
507
+
508
+ class PickUpTipCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
509
+ location: Well
510
+
511
+
512
+ class PickUpTipCommand(TypedDict):
513
+ name: Literal["command.PICK_UP_TIP"]
514
+ payload: PickUpTipCommandPayload
515
+
516
+
517
+ class DropTipCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
518
+ location: Well
519
+
520
+
521
+ class DropTipCommand(TypedDict):
522
+ name: Literal["command.DROP_TIP"]
523
+ payload: DropTipCommandPayload
524
+
525
+
526
+ class DropTipInDisposalLocationCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
527
+ location: Union[TrashBin, WasteChute]
528
+
529
+
530
+ class DropTipInDisposalLocationCommand(TypedDict):
531
+ name: Literal["command.DROP_TIP_IN_DISPOSAL_LOCATION"]
532
+ payload: DropTipInDisposalLocationCommandPayload
533
+
534
+
535
+ class MoveToCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
536
+ location: Location
537
+
538
+
539
+ class MoveToCommand(TypedDict):
540
+ name: Literal["command.MOVE_TO"]
541
+ payload: MoveToCommandPayload
542
+
543
+
544
+ class MoveToDisposalLocationCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
545
+ location: Union[TrashBin, WasteChute]
546
+
547
+
548
+ class MoveToDisposalLocationCommand(TypedDict):
549
+ name: Literal["command.MOVE_TO_DISPOSAL_LOCATION"]
550
+ payload: MoveToDisposalLocationCommandPayload
551
+
552
+
553
+ class MoveLabwareCommandPayload(TextOnlyPayload):
554
+ pass
555
+
556
+
557
+ class LiquidClassCommandPayload(TextOnlyPayload, SingleInstrumentPayload):
558
+ liquid_class: LiquidClass
559
+ volume: float
560
+ source: Union[Well, Sequence[Well], Sequence[Sequence[Well]]]
561
+ destination: Union[
562
+ Well, Sequence[Well], Sequence[Sequence[Well]], TrashBin, WasteChute
563
+ ]
564
+
565
+
566
+ class TransferWithLiquidClassCommand(TypedDict):
567
+ name: Literal["command.TRANSFER_WITH_LIQUID_CLASS"]
568
+ payload: LiquidClassCommandPayload
569
+
570
+
571
+ class DistributeWithLiquidClassCommand(TypedDict):
572
+ name: Literal["command.DISTRIBUTE_WITH_LIQUID_CLASS"]
573
+ payload: LiquidClassCommandPayload
574
+
575
+
576
+ class ConsolidateWithLiquidClassCommand(TypedDict):
577
+ name: Literal["command.CONSOLIDATE_WITH_LIQUID_CLASS"]
578
+ payload: LiquidClassCommandPayload
579
+
580
+
581
+ class SealCommandPayload(TextOnlyPayload):
582
+ instrument: InstrumentContext
583
+ location: Union[None, Location, Well]
584
+
585
+
586
+ class UnsealCommandPayload(TextOnlyPayload):
587
+ instrument: InstrumentContext
588
+ location: Union[None, Location, Well]
589
+
590
+
591
+ class PressurizeCommandPayload(TextOnlyPayload):
592
+ instrument: InstrumentContext
593
+
594
+
595
+ class ConfigureForVolumePayload(TypedDict, TextOnlyPayload):
596
+ instrument: InstrumentContext
597
+ volume: float
598
+
599
+
600
+ class ConfigureNozzleLayoutPayload(TypedDict, TextOnlyPayload):
601
+ instrument: InstrumentContext
602
+ style: NozzleLayout
603
+ start: Union[str, None]
604
+ end: Union[str, None]
605
+
606
+
607
+ class MoveLabwareCommand(TypedDict):
608
+ name: Literal["command.MOVE_LABWARE"]
609
+ payload: MoveLabwareCommandPayload
610
+
611
+
612
+ class SealCommand(TypedDict):
613
+ name: Literal["command.SEAL"]
614
+ payload: SealCommandPayload
615
+
616
+
617
+ class UnsealCommand(TypedDict):
618
+ name: Literal["command.UNSEAL"]
619
+ payload: UnsealCommandPayload
620
+
621
+
622
+ class PressurizeCommand(TypedDict):
623
+ name: Literal["command.PRESSURIZE"]
624
+ payload: PressurizeCommandPayload
625
+
626
+
627
+ class ConfigureForVolumeCommand(TypedDict):
628
+ name: Literal["command.CONFIGURE_FOR_VOLUME"]
629
+ payload: ConfigureForVolumePayload
630
+
631
+
632
+ class ConfigureNozzleLayoutCommand(TypedDict):
633
+ name: Literal["command.CONFIGURE_NOZZLE_LAYOUT"]
634
+ payload: ConfigureNozzleLayoutPayload
635
+
636
+
637
+ # Robot Commands and Payloads
638
+ class GripperCommandPayload(TextOnlyPayload):
639
+ pass
640
+
641
+
642
+ class RobotMoveToCommandPayload(TextOnlyPayload):
643
+ location: Location
644
+ mount: Mount
645
+
646
+
647
+ class RobotMoveAxisToCommandPayload(TextOnlyPayload):
648
+ absolute_axes: AxisMapType
649
+
650
+
651
+ class RobotMoveAxisRelativeCommandPayload(TextOnlyPayload):
652
+ relative_axes: AxisMapType
653
+
654
+
655
+ class RobotMoveToCommand(TypedDict):
656
+ name: Literal["command.ROBOT_MOVE_TO"]
657
+ payload: RobotMoveToCommandPayload
658
+
659
+
660
+ class RobotMoveAxisToCommand(TypedDict):
661
+ name: Literal["command.ROBOT_MOVE_AXES_TO"]
662
+ payload: RobotMoveAxisToCommandPayload
663
+
664
+
665
+ class RobotMoveAxisRelativeCommand(TypedDict):
666
+ name: Literal["command.ROBOT_MOVE_RELATIVE_TO"]
667
+ payload: RobotMoveAxisRelativeCommandPayload
668
+
669
+
670
+ class RobotOpenGripperJawCommand(TypedDict):
671
+ name: Literal["command.ROBOT_OPEN_GRIPPER_JAW"]
672
+ payload: GripperCommandPayload
673
+
674
+
675
+ class RobotCloseGripperJawCommand(TypedDict):
676
+ name: Literal["command.ROBOT_CLOSE_GRIPPER_JAW"]
677
+ payload: GripperCommandPayload
678
+
679
+
680
+ Command = Union[
681
+ DropTipCommand,
682
+ DropTipInDisposalLocationCommand,
683
+ PickUpTipCommand,
684
+ ReturnTipCommand,
685
+ AirGapCommand,
686
+ TouchTipCommand,
687
+ BlowOutCommand,
688
+ BlowOutInDisposalLocationCommand,
689
+ MixCommand,
690
+ TransferCommand,
691
+ DistributeCommand,
692
+ ConsolidateCommand,
693
+ DispenseCommand,
694
+ DispenseInDisposalLocationCommand,
695
+ AspirateCommand,
696
+ HomeCommand,
697
+ HeaterShakerSetTargetTemperatureCommand,
698
+ HeaterShakerWaitForTemperatureCommand,
699
+ HeaterShakerSetAndWaitForShakeSpeedCommand,
700
+ HeaterShakerOpenLabwareLatchCommand,
701
+ HeaterShakerCloseLabwareLatchCommand,
702
+ HeaterShakerDeactivateShakerCommand,
703
+ HeaterShakerDeactivateHeaterCommand,
704
+ ThermocyclerCloseCommand,
705
+ ThermocyclerWaitForLidTempCommand,
706
+ ThermocyclerDeactivateCommand,
707
+ ThermocyclerDeactivateBlockCommand,
708
+ ThermocyclerDeactivateLidCommand,
709
+ ThermocyclerSetLidTempCommand,
710
+ ThermocyclerWaitForTempCommand,
711
+ ThermocyclerWaitForHoldCommand,
712
+ ThermocyclerExecuteProfileCommand,
713
+ ThermocyclerSetBlockTempCommand,
714
+ ThermocyclerOpenCommand,
715
+ TempdeckDeactivateCommand,
716
+ TempdeckAwaitTempCommand,
717
+ TempdeckSetTempCommand,
718
+ MagdeckCalibrateCommand,
719
+ MagdeckDisengageCommand,
720
+ MagdeckEngageCommand,
721
+ ResumeCommand,
722
+ PauseCommand,
723
+ DelayCommand,
724
+ CommentCommand,
725
+ MoveToCommand,
726
+ MoveToDisposalLocationCommand,
727
+ MoveLabwareCommand,
728
+ TransferWithLiquidClassCommand,
729
+ DistributeWithLiquidClassCommand,
730
+ ConsolidateWithLiquidClassCommand,
731
+ SealCommand,
732
+ UnsealCommand,
733
+ PressurizeCommand,
734
+ ConfigureForVolumeCommand,
735
+ ConfigureNozzleLayoutCommand,
736
+ # Robot commands
737
+ RobotMoveToCommand,
738
+ RobotMoveAxisToCommand,
739
+ RobotMoveAxisRelativeCommand,
740
+ RobotOpenGripperJawCommand,
741
+ RobotCloseGripperJawCommand,
742
+ ]
743
+
744
+
745
+ CommandPayload = Union[
746
+ CommentCommandPayload,
747
+ ResumeCommandPayload,
748
+ HeaterShakerSetTargetTemperaturePayload,
749
+ HeaterShakerWaitForTemperaturePayload,
750
+ HeaterShakerSetAndWaitForShakeSpeedPayload,
751
+ HeaterShakerOpenLabwareLatchPayload,
752
+ HeaterShakerCloseLabwareLatchPayload,
753
+ HeaterShakerDeactivateShakerPayload,
754
+ HeaterShakerDeactivateHeaterPayload,
755
+ MagdeckEngageCommandPayload,
756
+ MagdeckDisengageCommandPayload,
757
+ MagdeckCalibrateCommandPayload,
758
+ ThermocyclerOpenCommandPayload,
759
+ ThermocyclerWaitForHoldCommandPayload,
760
+ ThermocyclerWaitForTempCommandPayload,
761
+ ThermocyclerSetLidTempCommandPayload,
762
+ ThermocyclerDeactivateLidCommandPayload,
763
+ ThermocyclerDeactivateBlockCommandPayload,
764
+ ThermocyclerDeactivateCommandPayload,
765
+ ThermocyclerWaitForLidTempCommand,
766
+ ThermocyclerCloseCommandPayload,
767
+ AirGapCommandPayload,
768
+ ReturnTipCommandPayload,
769
+ DropTipCommandPayload,
770
+ DropTipInDisposalLocationCommandPayload,
771
+ PickUpTipCommandPayload,
772
+ TouchTipCommandPayload,
773
+ BlowOutCommandPayload,
774
+ BlowOutInDisposalLocationCommandPayload,
775
+ MixCommandPayload,
776
+ TransferCommandPayload,
777
+ DistributeCommandPayload,
778
+ ConsolidateCommandPayload,
779
+ AspirateDispenseCommandPayload,
780
+ DispenseInDisposalLocationCommandPayload,
781
+ HomeCommandPayload,
782
+ ThermocyclerExecuteProfileCommandPayload,
783
+ ThermocyclerSetBlockTempCommandPayload,
784
+ TempdeckAwaitTempCommandPayload,
785
+ TempdeckSetTempCommandPayload,
786
+ PauseCommandPayload,
787
+ DelayCommandPayload,
788
+ MoveToCommandPayload,
789
+ MoveToDisposalLocationCommandPayload,
790
+ MoveLabwareCommandPayload,
791
+ LiquidClassCommandPayload,
792
+ SealCommandPayload,
793
+ UnsealCommandPayload,
794
+ PressurizeCommandPayload,
795
+ ConfigureForVolumePayload,
796
+ ConfigureNozzleLayoutPayload,
797
+ # Robot payloads
798
+ RobotMoveToCommandPayload,
799
+ RobotMoveAxisRelativeCommandPayload,
800
+ RobotMoveAxisToCommandPayload,
801
+ GripperCommandPayload,
802
+ ]
803
+
804
+
805
+ MessageSequenceId = Union[Literal["before"], Literal["after"]]
806
+
807
+
808
+ CommandMessageFields = TypedDict(
809
+ "CommandMessageFields",
810
+ {"$": MessageSequenceId, "id": str, "error": Optional[Exception]},
811
+ )
812
+
813
+
814
+ class MoveToMessage(CommandMessageFields, MoveToCommand):
815
+ pass
816
+
817
+
818
+ class MoveToDisposalLocationMessage(
819
+ CommandMessageFields, MoveToDisposalLocationCommand
820
+ ):
821
+ pass
822
+
823
+
824
+ class DropTipMessage(CommandMessageFields, DropTipCommand):
825
+ pass
826
+
827
+
828
+ class DropTipInDisposalLocationMessage(
829
+ CommandMessageFields, DropTipInDisposalLocationCommand
830
+ ):
831
+ pass
832
+
833
+
834
+ class PickUpTipMessage(CommandMessageFields, PickUpTipCommand):
835
+ pass
836
+
837
+
838
+ class ReturnTipMessage(CommandMessageFields, ReturnTipCommand):
839
+ pass
840
+
841
+
842
+ class AirGapMessage(CommandMessageFields, AirGapCommand):
843
+ pass
844
+
845
+
846
+ class TouchTipMessage(CommandMessageFields, TouchTipCommand):
847
+ pass
848
+
849
+
850
+ class BlowOutMessage(CommandMessageFields, BlowOutCommand):
851
+ pass
852
+
853
+
854
+ class BlowOutInDisposalLocationMessage(
855
+ CommandMessageFields, BlowOutInDisposalLocationCommand
856
+ ):
857
+ pass
858
+
859
+
860
+ class MixMessage(CommandMessageFields, MixCommand):
861
+ pass
862
+
863
+
864
+ class TransferMessage(CommandMessageFields, TransferCommand):
865
+ pass
866
+
867
+
868
+ class DistributeMessage(CommandMessageFields, DistributeCommand):
869
+ pass
870
+
871
+
872
+ class ConsolidateMessage(CommandMessageFields, ConsolidateCommand):
873
+ pass
874
+
875
+
876
+ class DispenseMessage(CommandMessageFields, DispenseCommand):
877
+ pass
878
+
879
+
880
+ class DispenseInDisposalLocationMessage(
881
+ CommandMessageFields, DispenseInDisposalLocationCommand
882
+ ):
883
+ pass
884
+
885
+
886
+ class AspirateMessage(CommandMessageFields, AspirateCommand):
887
+ pass
888
+
889
+
890
+ class HomeMessage(CommandMessageFields, HomeCommand):
891
+ pass
892
+
893
+
894
+ class HeaterShakerSetTargetTemperatureMessage(
895
+ CommandMessageFields, HeaterShakerSetTargetTemperatureCommand
896
+ ):
897
+ pass
898
+
899
+
900
+ class HeaterShakerWaitForTemperatureMessage(
901
+ CommandMessageFields, HeaterShakerWaitForTemperatureCommand
902
+ ):
903
+ pass
904
+
905
+
906
+ class HeaterShakerSetAndWaitForShakeSpeedMessage(
907
+ CommandMessageFields, HeaterShakerSetAndWaitForShakeSpeedCommand
908
+ ):
909
+ pass
910
+
911
+
912
+ class HeaterShakerOpenLabwareLatchMessage(
913
+ CommandMessageFields, HeaterShakerOpenLabwareLatchCommand
914
+ ):
915
+ pass
916
+
917
+
918
+ class HeaterShakerCloseLabwareLatchMessage(
919
+ CommandMessageFields, HeaterShakerCloseLabwareLatchCommand
920
+ ):
921
+ pass
922
+
923
+
924
+ class HeaterShakerDeactivateShakerMessage(
925
+ CommandMessageFields, HeaterShakerDeactivateShakerCommand
926
+ ):
927
+ pass
928
+
929
+
930
+ class HeaterShakerDeactivateHeaterMessage(
931
+ CommandMessageFields, HeaterShakerDeactivateHeaterCommand
932
+ ):
933
+ pass
934
+
935
+
936
+ class ThermocyclerCloseMessage(CommandMessageFields, ThermocyclerCloseCommand):
937
+ pass
938
+
939
+
940
+ class ThermocyclerWaitForLidTempMessage(
941
+ CommandMessageFields, ThermocyclerWaitForLidTempCommand
942
+ ):
943
+ pass
944
+
945
+
946
+ class ThermocyclerDeactivateMessage(
947
+ CommandMessageFields, ThermocyclerDeactivateCommand
948
+ ):
949
+ pass
950
+
951
+
952
+ class ThermocyclerDeactivateBlockMessage(
953
+ CommandMessageFields, ThermocyclerDeactivateBlockCommand
954
+ ):
955
+ pass
956
+
957
+
958
+ class ThermocyclerDeactivateLidMessage(
959
+ CommandMessageFields, ThermocyclerDeactivateLidCommand
960
+ ):
961
+ pass
962
+
963
+
964
+ class ThermocyclerSetLidTempMessage(
965
+ CommandMessageFields, ThermocyclerSetLidTempCommand
966
+ ):
967
+ pass
968
+
969
+
970
+ class ThermocyclerWaitForTempMessage(
971
+ CommandMessageFields, ThermocyclerWaitForTempCommand
972
+ ):
973
+ pass
974
+
975
+
976
+ class ThermocyclerWaitForHoldMessage(
977
+ CommandMessageFields, ThermocyclerWaitForHoldCommand
978
+ ):
979
+ pass
980
+
981
+
982
+ class ThermocyclerExecuteProfileMessage(
983
+ CommandMessageFields, ThermocyclerExecuteProfileCommand
984
+ ):
985
+ pass
986
+
987
+
988
+ class ThermocyclerSetBlockTempMessage(
989
+ CommandMessageFields, ThermocyclerSetBlockTempCommand
990
+ ):
991
+ pass
992
+
993
+
994
+ class ThermocyclerOpenMessage(CommandMessageFields, ThermocyclerOpenCommand):
995
+ pass
996
+
997
+
998
+ class TempdeckDeactivateMessage(CommandMessageFields, TempdeckDeactivateCommand):
999
+ pass
1000
+
1001
+
1002
+ class TempdeckAwaitTempMessage(CommandMessageFields, TempdeckAwaitTempCommand):
1003
+ pass
1004
+
1005
+
1006
+ class TempdeckSetTempMessage(CommandMessageFields, TempdeckSetTempCommand):
1007
+ pass
1008
+
1009
+
1010
+ class MagdeckCalibrateMessage(CommandMessageFields, MagdeckCalibrateCommand):
1011
+ pass
1012
+
1013
+
1014
+ class MagdeckDisengageMessage(CommandMessageFields, MagdeckDisengageCommand):
1015
+ pass
1016
+
1017
+
1018
+ class MagdeckEngageMessage(CommandMessageFields, MagdeckEngageCommand):
1019
+ pass
1020
+
1021
+
1022
+ class ResumeMessage(CommandMessageFields, ResumeCommand):
1023
+ pass
1024
+
1025
+
1026
+ class PauseMessage(CommandMessageFields, PauseCommand):
1027
+ pass
1028
+
1029
+
1030
+ class DelayMessage(CommandMessageFields, DelayCommand):
1031
+ pass
1032
+
1033
+
1034
+ class CommentMessage(CommandMessageFields, CommentCommand):
1035
+ pass
1036
+
1037
+
1038
+ class MoveLabwareMessage(CommandMessageFields, MoveLabwareCommand):
1039
+ pass
1040
+
1041
+
1042
+ class RobotMoveToMessage(CommandMessageFields, RobotMoveToCommand):
1043
+ pass
1044
+
1045
+
1046
+ class RobotMoveAxisToMessage(CommandMessageFields, RobotMoveAxisToCommand):
1047
+ pass
1048
+
1049
+
1050
+ class RobotMoveAxisRelativeMessage(CommandMessageFields, RobotMoveAxisRelativeCommand):
1051
+ pass
1052
+
1053
+
1054
+ class RobotOpenGripperJawMessage(CommandMessageFields, RobotOpenGripperJawCommand):
1055
+ pass
1056
+
1057
+
1058
+ class RobotCloseGripperJawMessage(CommandMessageFields, RobotCloseGripperJawCommand):
1059
+ pass
1060
+
1061
+
1062
+ CommandMessage = Union[
1063
+ DropTipMessage,
1064
+ DropTipInDisposalLocationMessage,
1065
+ PickUpTipMessage,
1066
+ ReturnTipMessage,
1067
+ AirGapMessage,
1068
+ TouchTipMessage,
1069
+ BlowOutMessage,
1070
+ BlowOutInDisposalLocationMessage,
1071
+ MixMessage,
1072
+ TransferMessage,
1073
+ DistributeMessage,
1074
+ ConsolidateMessage,
1075
+ DispenseMessage,
1076
+ DispenseInDisposalLocationMessage,
1077
+ AspirateMessage,
1078
+ HomeMessage,
1079
+ HeaterShakerSetTargetTemperatureMessage,
1080
+ HeaterShakerWaitForTemperatureMessage,
1081
+ HeaterShakerSetAndWaitForShakeSpeedMessage,
1082
+ HeaterShakerOpenLabwareLatchMessage,
1083
+ HeaterShakerCloseLabwareLatchMessage,
1084
+ HeaterShakerDeactivateShakerMessage,
1085
+ HeaterShakerDeactivateHeaterMessage,
1086
+ ThermocyclerCloseMessage,
1087
+ ThermocyclerWaitForLidTempMessage,
1088
+ ThermocyclerDeactivateMessage,
1089
+ ThermocyclerDeactivateBlockMessage,
1090
+ ThermocyclerDeactivateLidMessage,
1091
+ ThermocyclerSetLidTempMessage,
1092
+ ThermocyclerWaitForTempMessage,
1093
+ ThermocyclerWaitForHoldMessage,
1094
+ ThermocyclerExecuteProfileMessage,
1095
+ ThermocyclerSetBlockTempMessage,
1096
+ ThermocyclerOpenMessage,
1097
+ TempdeckSetTempMessage,
1098
+ TempdeckDeactivateMessage,
1099
+ MagdeckEngageMessage,
1100
+ MagdeckDisengageMessage,
1101
+ MagdeckCalibrateMessage,
1102
+ CommentMessage,
1103
+ DelayMessage,
1104
+ PauseMessage,
1105
+ ResumeMessage,
1106
+ MoveToMessage,
1107
+ MoveToDisposalLocationMessage,
1108
+ MoveLabwareMessage,
1109
+ # Robot Messages
1110
+ RobotMoveToMessage,
1111
+ RobotMoveAxisToMessage,
1112
+ RobotMoveAxisRelativeMessage,
1113
+ RobotOpenGripperJawMessage,
1114
+ RobotCloseGripperJawMessage,
1115
+ ]