opentrons 8.4.0a2__tar.gz → 8.4.0a3__tar.gz

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.
Files changed (596) hide show
  1. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/PKG-INFO +4 -4
  2. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/instrument.py +4 -4
  3. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/instrument.py +3 -3
  4. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +3 -3
  5. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +3 -3
  6. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/instrument_context.py +75 -17
  7. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +6 -6
  8. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +6 -6
  9. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +6 -6
  10. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +9 -9
  11. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +16 -13
  12. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/geometry.py +4 -4
  13. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/location.py +2 -1
  14. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/PKG-INFO +4 -4
  15. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/requires.txt +3 -3
  16. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/MANIFEST.in +0 -0
  17. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/README.rst +0 -0
  18. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/setup.cfg +0 -0
  19. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/setup.py +0 -0
  20. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/__init__.py +0 -0
  21. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/_version.py +0 -0
  22. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/__init__.py +0 -0
  23. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
  24. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
  25. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/file_operators.py +0 -0
  26. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/helpers.py +0 -0
  27. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
  28. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
  29. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
  30. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
  31. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
  32. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
  33. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
  34. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
  35. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
  36. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
  37. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
  38. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
  39. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
  40. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
  41. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/calibration_storage/types.py +0 -0
  42. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/cli/__init__.py +0 -0
  43. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/cli/__main__.py +0 -0
  44. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/cli/analyze.py +0 -0
  45. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/__init__.py +0 -0
  46. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/advanced_settings.py +0 -0
  47. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/defaults_ot2.py +0 -0
  48. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/defaults_ot3.py +0 -0
  49. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/feature_flags.py +0 -0
  50. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/gripper_config.py +0 -0
  51. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/reset.py +0 -0
  52. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/robot_configs.py +0 -0
  53. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/config/types.py +0 -0
  54. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/__init__.py +0 -0
  55. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
  56. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
  57. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
  58. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
  59. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
  60. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
  61. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/asyncio/__init__.py +0 -0
  62. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
  63. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
  64. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
  65. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/asyncio/communication/serial_connection.py +0 -0
  66. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/command_builder.py +0 -0
  67. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
  68. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
  69. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
  70. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
  71. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
  72. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/types.py +0 -0
  73. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
  74. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
  75. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
  76. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
  77. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
  78. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
  79. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
  80. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/mag_deck/driver.py +0 -0
  81. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
  82. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
  83. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
  84. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
  85. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
  86. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
  87. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
  88. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
  89. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
  90. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/serial_communication.py +0 -0
  91. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
  92. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
  93. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
  94. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
  95. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
  96. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
  97. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
  98. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
  99. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
  100. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
  101. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/temp_deck/driver.py +0 -0
  102. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
  103. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
  104. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
  105. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/thermocycler/driver.py +0 -0
  106. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
  107. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/types.py +0 -0
  108. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/drivers/utils.py +0 -0
  109. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/execute.py +0 -0
  110. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/__init__.py +0 -0
  111. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/__main__.py +0 -0
  112. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/adapters.py +0 -0
  113. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/api.py +0 -0
  114. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/__init__.py +0 -0
  115. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/controller.py +0 -0
  116. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/errors.py +0 -0
  117. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
  118. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/flex_protocol.py +0 -0
  119. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/ot3controller.py +0 -0
  120. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/ot3simulator.py +0 -0
  121. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
  122. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/simulator.py +0 -0
  123. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
  124. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
  125. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
  126. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/backends/types.py +0 -0
  127. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/constants.py +0 -0
  128. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/dev_types.py +0 -0
  129. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
  130. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
  131. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/app.py +0 -0
  132. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
  133. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
  134. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
  135. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
  136. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
  137. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
  138. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
  139. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
  140. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/parser.py +0 -0
  141. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
  142. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
  143. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
  144. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
  145. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
  146. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
  147. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/settings.py +0 -0
  148. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
  149. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
  150. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
  151. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
  152. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/types.py +0 -0
  153. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/emulation/util.py +0 -0
  154. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/errors.py +0 -0
  155. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/execution_manager.py +0 -0
  156. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
  157. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
  158. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
  159. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
  160. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
  161. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
  162. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
  163. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
  164. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
  165. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
  166. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
  167. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +0 -0
  168. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/module_control.py +0 -0
  169. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/__init__.py +0 -0
  170. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
  171. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/errors.py +0 -0
  172. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
  173. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
  174. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
  175. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
  176. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
  177. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
  178. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
  179. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
  180. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
  181. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/types.py +0 -0
  182. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/update.py +0 -0
  183. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/modules/utils.py +0 -0
  184. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/motion_utilities.py +0 -0
  185. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
  186. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
  187. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/ot3api.py +0 -0
  188. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/pause_manager.py +0 -0
  189. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/poller.py +0 -0
  190. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
  191. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
  192. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
  193. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
  194. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
  195. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
  196. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
  197. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
  198. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
  199. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
  200. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
  201. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
  202. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
  203. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/liquid_handler.py +0 -0
  204. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
  205. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
  206. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
  207. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
  208. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
  209. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/protocols/types.py +0 -0
  210. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/robot_calibration.py +0 -0
  211. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
  212. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
  213. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/scripts/repl.py +0 -0
  214. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
  215. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/simulator_setup.py +0 -0
  216. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/thread_manager.py +0 -0
  217. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
  218. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/types.py +0 -0
  219. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/hardware_control/util.py +0 -0
  220. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_broker.py +0 -0
  221. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/__init__.py +0 -0
  222. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/commands.py +0 -0
  223. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/helpers.py +0 -0
  224. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/module_commands.py +0 -0
  225. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
  226. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/publisher.py +0 -0
  227. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/legacy_commands/types.py +0 -0
  228. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/__init__.py +0 -0
  229. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
  230. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/deck_conflict.py +0 -0
  231. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/errors.py +0 -0
  232. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/types.py +0 -0
  233. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/motion_planning/waypoints.py +0 -0
  234. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/ordered_set.py +0 -0
  235. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/__init__.py +0 -0
  236. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_liquid.py +0 -0
  237. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
  238. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
  239. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_parameter_context.py +0 -0
  240. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_parameters.py +0 -0
  241. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_transfer_liquid_validation.py +0 -0
  242. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/_types.py +0 -0
  243. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/config.py +0 -0
  244. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/__init__.py +0 -0
  245. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/common.py +0 -0
  246. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/core_map.py +0 -0
  247. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
  248. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
  249. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
  250. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
  251. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
  252. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
  253. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
  254. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +0 -0
  255. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
  256. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/protocol.py +0 -0
  257. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
  258. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
  259. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +0 -0
  260. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/engine/well.py +0 -0
  261. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/labware.py +0 -0
  262. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
  263. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
  264. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
  265. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
  266. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
  267. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +0 -0
  268. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -0
  269. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
  270. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
  271. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
  272. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
  273. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
  274. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/module.py +0 -0
  275. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/protocol.py +0 -0
  276. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/robot.py +0 -0
  277. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/well.py +0 -0
  278. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/core/well_grid.py +0 -0
  279. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
  280. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/deck.py +0 -0
  281. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/disposal_locations.py +0 -0
  282. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/labware.py +0 -0
  283. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/module_contexts.py +0 -0
  284. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
  285. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/protocol_context.py +0 -0
  286. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/robot_context.py +0 -0
  287. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_api/validation.py +0 -0
  288. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/__init__.py +0 -0
  289. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
  290. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
  291. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
  292. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/actions/actions.py +0 -0
  293. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
  294. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
  295. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
  296. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/clients/transports.py +0 -0
  297. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
  298. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
  299. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
  300. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
  301. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
  302. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
  303. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
  304. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
  305. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
  306. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +0 -0
  307. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
  308. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
  309. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
  310. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
  311. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
  312. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
  313. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
  314. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/command.py +0 -0
  315. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
  316. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/comment.py +0 -0
  317. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
  318. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
  319. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/custom.py +0 -0
  320. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
  321. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
  322. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +0 -0
  323. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
  324. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
  325. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/evotip_dispense.py +0 -0
  326. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/evotip_seal_pipette.py +0 -0
  327. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/evotip_unseal_pipette.py +0 -0
  328. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
  329. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/close_latch.py +0 -0
  330. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
  331. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/open_latch.py +0 -0
  332. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/flex_stacker/prepare_shuttle.py +0 -0
  333. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
  334. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
  335. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
  336. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
  337. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
  338. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
  339. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
  340. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
  341. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
  342. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
  343. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
  344. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
  345. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/home.py +0 -0
  346. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
  347. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
  348. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_labware.py +0 -0
  349. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
  350. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
  351. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
  352. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
  353. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
  354. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
  355. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
  356. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
  357. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
  358. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
  359. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
  360. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
  361. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
  362. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
  363. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
  364. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
  365. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
  366. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/pipetting_common.py +0 -0
  367. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
  368. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
  369. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
  370. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
  371. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
  372. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
  373. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
  374. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
  375. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
  376. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
  377. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
  378. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
  379. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
  380. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
  381. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
  382. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
  383. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
  384. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
  385. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
  386. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
  387. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
  388. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
  389. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
  390. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
  391. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
  392. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
  393. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
  394. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
  395. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
  396. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
  397. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
  398. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
  399. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
  400. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
  401. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
  402. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
  403. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
  404. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
  405. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
  406. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
  407. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/engine_support.py +0 -0
  408. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
  409. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
  410. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
  411. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
  412. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
  413. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/command_executor.py +0 -0
  414. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
  415. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
  416. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
  417. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
  418. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
  419. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
  420. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
  421. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
  422. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/movement.py +0 -0
  423. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/pipetting.py +0 -0
  424. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
  425. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
  426. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
  427. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
  428. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
  429. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
  430. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
  431. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
  432. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
  433. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/notes/notes.py +0 -0
  434. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/plugins.py +0 -0
  435. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
  436. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
  437. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
  438. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
  439. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
  440. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
  441. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
  442. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/labware_validation.py +0 -0
  443. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
  444. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
  445. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
  446. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
  447. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
  448. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/__init__.py +0 -0
  449. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
  450. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
  451. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
  452. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
  453. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/command_history.py +0 -0
  454. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/commands.py +0 -0
  455. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/config.py +0 -0
  456. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/files.py +0 -0
  457. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
  458. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/frustum_helpers.py +0 -0
  459. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/labware.py +0 -0
  460. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
  461. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/liquids.py +0 -0
  462. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
  463. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
  464. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
  465. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
  466. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
  467. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
  468. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
  469. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
  470. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/modules.py +0 -0
  471. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/motion.py +0 -0
  472. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
  473. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/state.py +0 -0
  474. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
  475. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/tips.py +0 -0
  476. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/update_types.py +0 -0
  477. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/state/wells.py +0 -0
  478. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/__init__.py +0 -0
  479. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
  480. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
  481. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
  482. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/execution.py +0 -0
  483. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
  484. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/instrument.py +0 -0
  485. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
  486. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/labware.py +0 -0
  487. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
  488. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
  489. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
  490. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/liquid.py +0 -0
  491. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
  492. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
  493. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/liquid_level_detection.py +0 -0
  494. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/module.py +0 -0
  495. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
  496. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
  497. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/tip.py +0 -0
  498. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/util.py +0 -0
  499. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_engine/types/well_position.py +0 -0
  500. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/__init__.py +0 -0
  501. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
  502. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
  503. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/file_hasher.py +0 -0
  504. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/file_identifier.py +0 -0
  505. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
  506. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/input_file.py +0 -0
  507. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
  508. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
  509. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/protocol_source.py +0 -0
  510. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
  511. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/__init__.py +0 -0
  512. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
  513. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
  514. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/json_translator.py +0 -0
  515. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/legacy_command_mapper.py +0 -0
  516. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
  517. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
  518. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
  519. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
  520. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocol_runner/task_queue.py +0 -0
  521. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/__init__.py +0 -0
  522. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
  523. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/common.py +0 -0
  524. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/mix.py +0 -0
  525. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  526. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
  527. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
  528. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +0 -0
  529. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/__init__.py +0 -0
  530. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/constants.py +0 -0
  531. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/deck_type.py +0 -0
  532. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/definitions.py +0 -0
  533. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/instrument.py +0 -0
  534. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/labware_like.py +0 -0
  535. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
  536. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/types.py +0 -0
  537. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/api_support/util.py +0 -0
  538. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/bundle.py +0 -0
  539. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/duration/__init__.py +0 -0
  540. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/duration/errors.py +0 -0
  541. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/duration/estimator.py +0 -0
  542. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/__init__.py +0 -0
  543. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/dev_types.py +0 -0
  544. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/errors.py +0 -0
  545. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/execute.py +0 -0
  546. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
  547. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
  548. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
  549. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/execute_python.py +0 -0
  550. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
  551. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/execution/types.py +0 -0
  552. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/geometry/__init__.py +0 -0
  553. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/geometry/labware_geometry.py +0 -0
  554. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/geometry/planning.py +0 -0
  555. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/labware.py +0 -0
  556. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/models/__init__.py +0 -0
  557. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/models/json_protocol.py +0 -0
  558. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/__init__.py +0 -0
  559. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
  560. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
  561. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/exceptions.py +0 -0
  562. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
  563. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/types.py +0 -0
  564. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parameters/validation.py +0 -0
  565. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/parse.py +0 -0
  566. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/protocols/types.py +0 -0
  567. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/py.typed +0 -0
  568. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/resources/scripts/lpc21isp +0 -0
  569. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
  570. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/simulate.py +0 -0
  571. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/__init__.py +0 -0
  572. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/camera.py +0 -0
  573. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/log_control.py +0 -0
  574. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/nmcli.py +0 -0
  575. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/resin.py +0 -0
  576. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/smoothie_update.py +0 -0
  577. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/system/wifi.py +0 -0
  578. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/tools/__init__.py +0 -0
  579. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/tools/args_handler.py +0 -0
  580. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/tools/write_pipette_memory.py +0 -0
  581. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/types.py +0 -0
  582. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/__init__.py +0 -0
  583. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/async_helpers.py +0 -0
  584. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/broker.py +0 -0
  585. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/change_notifier.py +0 -0
  586. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/entrypoint_util.py +0 -0
  587. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/get_union_elements.py +0 -0
  588. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/helpers.py +0 -0
  589. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/linal.py +0 -0
  590. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/logging_config.py +0 -0
  591. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons/util/performance_helpers.py +0 -0
  592. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/SOURCES.txt +0 -0
  593. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/dependency_links.txt +0 -0
  594. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/entry_points.txt +0 -0
  595. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/not-zip-safe +0 -0
  596. {opentrons-8.4.0a2 → opentrons-8.4.0a3}/src/opentrons.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: opentrons
3
- Version: 8.4.0a2
3
+ Version: 8.4.0a3
4
4
  Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
5
5
  Author: Opentrons
6
6
  Author-email: engineering@opentrons.com
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Topic :: Scientific/Engineering
22
22
  Requires-Python: >=3.10
23
23
  License-File: ../LICENSE
24
- Requires-Dist: opentrons-shared-data==8.4.0a2
24
+ Requires-Dist: opentrons-shared-data==8.4.0a3
25
25
  Requires-Dist: aionotify==0.3.1
26
26
  Requires-Dist: anyio<4.0.0,>=3.6.1
27
27
  Requires-Dist: jsonschema<4.18.0,>=3.0.1
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
35
35
  Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
36
36
  Requires-Dist: packaging>=21.0
37
37
  Provides-Extra: ot2-hardware
38
- Requires-Dist: opentrons-hardware==8.4.0a2; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.4.0a3; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.4.0a2; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.4.0a3; extra == "flex-hardware"
41
41
 
42
42
  .. _Full API Documentation: http://docs.opentrons.com
43
43
 
@@ -1141,7 +1141,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1141
1141
  result.nextTipInfo if isinstance(result.nextTipInfo, NextTipInfo) else None
1142
1142
  )
1143
1143
 
1144
- def transfer_liquid( # noqa: C901
1144
+ def transfer_with_liquid_class( # noqa: C901
1145
1145
  self,
1146
1146
  liquid_class: LiquidClass,
1147
1147
  volume: float,
@@ -1335,7 +1335,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1335
1335
  _drop_tip()
1336
1336
 
1337
1337
  # TODO(spp, 2025-02-25): wire up return tip
1338
- def distribute_liquid( # noqa: C901
1338
+ def distribute_with_liquid_class( # noqa: C901
1339
1339
  self,
1340
1340
  liquid_class: LiquidClass,
1341
1341
  volume: float,
@@ -1417,7 +1417,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1417
1417
  tip_working_volume=working_volume,
1418
1418
  )
1419
1419
  ):
1420
- self.transfer_liquid(
1420
+ self.transfer_with_liquid_class(
1421
1421
  liquid_class=liquid_class,
1422
1422
  volume=volume,
1423
1423
  source=[source for _ in range(len(dest))],
@@ -1657,7 +1657,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1657
1657
  <= tip_working_volume
1658
1658
  )
1659
1659
 
1660
- def consolidate_liquid( # noqa: C901
1660
+ def consolidate_with_liquid_class( # noqa: C901
1661
1661
  self,
1662
1662
  liquid_class: LiquidClass,
1663
1663
  volume: float,
@@ -359,7 +359,7 @@ class AbstractInstrument(ABC, Generic[WellCoreType, LabwareCoreType]):
359
359
  ...
360
360
 
361
361
  @abstractmethod
362
- def transfer_liquid(
362
+ def transfer_with_liquid_class(
363
363
  self,
364
364
  liquid_class: LiquidClass,
365
365
  volume: float,
@@ -374,7 +374,7 @@ class AbstractInstrument(ABC, Generic[WellCoreType, LabwareCoreType]):
374
374
  ...
375
375
 
376
376
  @abstractmethod
377
- def distribute_liquid(
377
+ def distribute_with_liquid_class(
378
378
  self,
379
379
  liquid_class: LiquidClass,
380
380
  volume: float,
@@ -392,7 +392,7 @@ class AbstractInstrument(ABC, Generic[WellCoreType, LabwareCoreType]):
392
392
  ...
393
393
 
394
394
  @abstractmethod
395
- def consolidate_liquid(
395
+ def consolidate_with_liquid_class(
396
396
  self,
397
397
  liquid_class: LiquidClass,
398
398
  volume: float,
@@ -624,7 +624,7 @@ class LegacyInstrumentCore(AbstractInstrument[LegacyWellCore, LegacyLabwareCore]
624
624
  """This will never be called because it was added in API 2.16."""
625
625
  pass
626
626
 
627
- def transfer_liquid(
627
+ def transfer_with_liquid_class(
628
628
  self,
629
629
  liquid_class: LiquidClass,
630
630
  volume: float,
@@ -638,7 +638,7 @@ class LegacyInstrumentCore(AbstractInstrument[LegacyWellCore, LegacyLabwareCore]
638
638
  """This will never be called because it was added in API 2.23"""
639
639
  assert False, "transfer_liquid is not supported in legacy context"
640
640
 
641
- def distribute_liquid(
641
+ def distribute_with_liquid_class(
642
642
  self,
643
643
  liquid_class: LiquidClass,
644
644
  volume: float,
@@ -652,7 +652,7 @@ class LegacyInstrumentCore(AbstractInstrument[LegacyWellCore, LegacyLabwareCore]
652
652
  """This will never be called because it was added in API 2.23"""
653
653
  assert False, "distribute_liquid is not supported in legacy context"
654
654
 
655
- def consolidate_liquid(
655
+ def consolidate_with_liquid_class(
656
656
  self,
657
657
  liquid_class: LiquidClass,
658
658
  volume: float,
@@ -513,7 +513,7 @@ class LegacyInstrumentCoreSimulator(
513
513
  """This will never be called because it was added in API 2.15."""
514
514
  pass
515
515
 
516
- def transfer_liquid(
516
+ def transfer_with_liquid_class(
517
517
  self,
518
518
  liquid_class: LiquidClass,
519
519
  volume: float,
@@ -527,7 +527,7 @@ class LegacyInstrumentCoreSimulator(
527
527
  """This will never be called because it was added in API 2.23."""
528
528
  assert False, "transfer_liquid is not supported in legacy context"
529
529
 
530
- def distribute_liquid(
530
+ def distribute_with_liquid_class(
531
531
  self,
532
532
  liquid_class: LiquidClass,
533
533
  volume: float,
@@ -541,7 +541,7 @@ class LegacyInstrumentCoreSimulator(
541
541
  """This will never be called because it was added in API 2.23."""
542
542
  assert False, "distribute_liquid is not supported in legacy context"
543
543
 
544
- def consolidate_liquid(
544
+ def consolidate_with_liquid_class(
545
545
  self,
546
546
  liquid_class: LiquidClass,
547
547
  volume: float,
@@ -1509,7 +1509,7 @@ class InstrumentContext(publisher.CommandPublisher):
1509
1509
  getattr(self, cmd["method"])(*cmd["args"], **cmd["kwargs"])
1510
1510
 
1511
1511
  @requires_version(2, 23)
1512
- def transfer_liquid(
1512
+ def transfer_with_liquid_class(
1513
1513
  self,
1514
1514
  liquid_class: LiquidClass,
1515
1515
  volume: float,
@@ -1526,11 +1526,32 @@ class InstrumentContext(publisher.CommandPublisher):
1526
1526
  return_tip: bool = False,
1527
1527
  visit_every_well: bool = False,
1528
1528
  ) -> InstrumentContext:
1529
- """Transfer liquid from source to dest using the specified liquid class properties.
1529
+ """Move a particular type of liquid from one well or group of wells to another.
1530
1530
 
1531
- TODO: Add args description.
1531
+ :param liquid_class: The type of liquid to move. You must specify the liquid class,
1532
+ even if you have used :py:meth:`.load_liquid` to indicate what liquid the
1533
+ source contains.
1534
+ :type liquid_class: :py:class:`.LiquidClass`
1532
1535
 
1533
- :meta private:
1536
+ :param volume: The amount, in µL, to aspirate from each source and dispense to
1537
+ each destination.
1538
+ :param source: A single well or a list of wells to aspirate liquid from.
1539
+ :param dest: A single well or a list of wells to dispense liquid into.
1540
+ :param new_tip: When to pick up and drop tips during the command.
1541
+ Defaults to ``"once"``.
1542
+
1543
+ - ``"once"``: Use one tip for the entire command.
1544
+ - ``"always"``: Use a new tip for each set of aspirate and dispense steps.
1545
+ - ``"per source"``: Use one tip for each source well, even if
1546
+ :ref:`tip refilling <complex-tip-refilling>` is required.
1547
+ - ``"never"``: Do not pick up or drop tips at all.
1548
+
1549
+ See :ref:`param-tip-handling` for details.
1550
+
1551
+ :param trash_location: A trash container, well, or other location to dispose of
1552
+ tips. Depending on the liquid class, the pipette may also blow out liquid here.
1553
+ :param return_tip: Whether to drop used tips in their original locations
1554
+ in the tip rack, instead of the trash.
1534
1555
  """
1535
1556
  transfer_args = verify_and_normalize_transfer_args(
1536
1557
  source=source,
@@ -1552,7 +1573,7 @@ class InstrumentContext(publisher.CommandPublisher):
1552
1573
  " to transfer liquid onto one destinations from many sources, use 'consolidate_liquid'."
1553
1574
  )
1554
1575
 
1555
- self._core.transfer_liquid(
1576
+ self._core.transfer_with_liquid_class(
1556
1577
  liquid_class=liquid_class,
1557
1578
  volume=volume,
1558
1579
  source=[
@@ -1574,7 +1595,7 @@ class InstrumentContext(publisher.CommandPublisher):
1574
1595
  return self
1575
1596
 
1576
1597
  @requires_version(2, 23)
1577
- def distribute_liquid(
1598
+ def distribute_with_liquid_class(
1578
1599
  self,
1579
1600
  liquid_class: LiquidClass,
1580
1601
  volume: float,
@@ -1590,12 +1611,30 @@ class InstrumentContext(publisher.CommandPublisher):
1590
1611
  visit_every_well: bool = False,
1591
1612
  ) -> InstrumentContext:
1592
1613
  """
1593
- Distribute liquid from a single source to multiple destinations
1594
- using the specified liquid class properties.
1614
+ Distribute a particular type of liquid from one well to a group of wells.
1595
1615
 
1596
- TODO: Add args description.
1616
+ :param liquid_class: The type of liquid to move. You must specify the liquid class,
1617
+ even if you have used :py:meth:`.load_liquid` to indicate what liquid the
1618
+ source contains.
1619
+ :type liquid_class: :py:class:`.LiquidClass`
1597
1620
 
1598
- :meta private:
1621
+ :param volume: The amount, in µL, to aspirate from the source and dispense to
1622
+ each destination.
1623
+ :param source: A single well to aspirate liquid from.
1624
+ :param dest: A list of wells to dispense liquid into.
1625
+ :param new_tip: When to pick up and drop tips during the command.
1626
+ Defaults to ``"once"``.
1627
+
1628
+ - ``"once"`` or ``"per source"``: Use one tip for the entire command.
1629
+ - ``"always"``: Use a new tip for each set of aspirate and dispense steps.
1630
+ - ``"never"``: Do not pick up or drop tips at all.
1631
+
1632
+ See :ref:`param-tip-handling` for details.
1633
+
1634
+ :param trash_location: A trash container, well, or other location to dispose of
1635
+ tips. Depending on the liquid class, the pipette may also blow out liquid here.
1636
+ :param return_tip: Whether to drop used tips in their original locations
1637
+ in the tip rack, instead of the trash.
1599
1638
  """
1600
1639
  transfer_args = verify_and_normalize_transfer_args(
1601
1640
  source=source,
@@ -1621,7 +1660,7 @@ class InstrumentContext(publisher.CommandPublisher):
1621
1660
  )
1622
1661
 
1623
1662
  verified_source = transfer_args.sources_list[0]
1624
- self._core.distribute_liquid(
1663
+ self._core.distribute_with_liquid_class(
1625
1664
  liquid_class=liquid_class,
1626
1665
  volume=volume,
1627
1666
  source=(
@@ -1643,7 +1682,7 @@ class InstrumentContext(publisher.CommandPublisher):
1643
1682
  return self
1644
1683
 
1645
1684
  @requires_version(2, 23)
1646
- def consolidate_liquid(
1685
+ def consolidate_with_liquid_class(
1647
1686
  self,
1648
1687
  liquid_class: LiquidClass,
1649
1688
  volume: float,
@@ -1659,12 +1698,31 @@ class InstrumentContext(publisher.CommandPublisher):
1659
1698
  visit_every_well: bool = False,
1660
1699
  ) -> InstrumentContext:
1661
1700
  """
1662
- Consolidate liquid from multiple sources to a single destination
1663
- using the specified liquid class properties.
1701
+ Consolidate a particular type of liquid from a group of wells to one well.
1664
1702
 
1665
- TODO: Add args description.
1703
+ :param liquid_class: The type of liquid to move. You must specify the liquid class,
1704
+ even if you have used :py:meth:`.load_liquid` to indicate what liquid the
1705
+ source contains.
1706
+ :type liquid_class: :py:class:`.LiquidClass`
1666
1707
 
1667
- :meta private:
1708
+ :param volume: The amount, in µL, to aspirate from the source and dispense to
1709
+ each destination.
1710
+ :param source: A list of wells to aspirate liquid from.
1711
+ :param dest: A single well to dispense liquid into.
1712
+ :param new_tip: When to pick up and drop tips during the command.
1713
+ Defaults to ``"once"``.
1714
+
1715
+ - ``"once"``: Use one tip for the entire command.
1716
+ - ``"always"``: Use a new tip for each set of aspirate and dispense steps.
1717
+ - ``"per source"``: Not available when consolidating.
1718
+ - ``"never"``: Do not pick up or drop tips at all.
1719
+
1720
+ See :ref:`param-tip-handling` for details.
1721
+
1722
+ :param trash_location: A trash container, well, or other location to dispose of
1723
+ tips. Depending on the liquid class, the pipette may also blow out liquid here.
1724
+ :param return_tip: Whether to drop used tips in their original locations
1725
+ in the tip rack, instead of the trash.
1668
1726
  """
1669
1727
  transfer_args = verify_and_normalize_transfer_args(
1670
1728
  source=source,
@@ -1690,7 +1748,7 @@ class InstrumentContext(publisher.CommandPublisher):
1690
1748
  )
1691
1749
 
1692
1750
  verified_dest = transfer_args.destinations_list[0]
1693
- self._core.consolidate_liquid(
1751
+ self._core.consolidate_with_liquid_class(
1694
1752
  liquid_class=liquid_class,
1695
1753
  volume=volume,
1696
1754
  source=[
@@ -3,10 +3,11 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from __future__ import annotations
6
- from typing import Optional, Literal, TYPE_CHECKING
6
+ from typing import Optional, Literal, TYPE_CHECKING, Annotated
7
7
  from typing_extensions import Type
8
8
 
9
9
  from pydantic import BaseModel, Field
10
+ from pydantic.json_schema import SkipJsonSchema
10
11
 
11
12
  from ..command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, SuccessData
12
13
  from ...errors import (
@@ -39,12 +40,12 @@ class EmptyParams(BaseModel):
39
40
  ),
40
41
  )
41
42
 
42
- message: str | None = Field(
43
+ message: str | SkipJsonSchema[None] = Field(
43
44
  None,
44
45
  description="The message to display on connected clients during a manualWithPause strategy empty.",
45
46
  )
46
47
 
47
- count: int | None = Field(
48
+ count: Optional[Annotated[int, Field(ge=0)]] = Field(
48
49
  None,
49
50
  description=(
50
51
  "The new count of labware in the pool. If None, default to an empty pool. If this number is "
@@ -52,7 +53,6 @@ class EmptyParams(BaseModel):
52
53
  "Do not use the value in the parameters as an outside observer; instead, use the count value "
53
54
  "from the results."
54
55
  ),
55
- ge=0,
56
56
  )
57
57
 
58
58
 
@@ -66,11 +66,11 @@ class EmptyResult(BaseModel):
66
66
  ...,
67
67
  description="The labware definition URI of the primary labware.",
68
68
  )
69
- adapterLabwareURI: str | None = Field(
69
+ adapterLabwareURI: str | SkipJsonSchema[None] = Field(
70
70
  None,
71
71
  description="The labware definition URI of the adapter labware.",
72
72
  )
73
- lidLabwareURI: str | None = Field(
73
+ lidLabwareURI: str | SkipJsonSchema[None] = Field(
74
74
  None,
75
75
  description="The labware definition URI of the lid labware.",
76
76
  )
@@ -1,10 +1,11 @@
1
1
  """Command models to engage a user to empty a Flex Stacker."""
2
2
 
3
3
  from __future__ import annotations
4
- from typing import Optional, Literal, TYPE_CHECKING
4
+ from typing import Optional, Literal, TYPE_CHECKING, Annotated
5
5
  from typing_extensions import Type
6
6
 
7
7
  from pydantic import BaseModel, Field
8
+ from pydantic.json_schema import SkipJsonSchema
8
9
 
9
10
  from ..command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, SuccessData
10
11
  from ...errors import (
@@ -37,12 +38,12 @@ class FillParams(BaseModel):
37
38
  ),
38
39
  )
39
40
 
40
- message: str | None = Field(
41
+ message: str | SkipJsonSchema[None] = Field(
41
42
  None,
42
43
  description="The message to display on connected clients during a manualWithPause strategy fill.",
43
44
  )
44
45
 
45
- count: int | None = Field(
46
+ count: Optional[Annotated[int, Field(ge=1)]] = Field(
46
47
  None,
47
48
  description=(
48
49
  "How full the labware pool should now be. If None, default to the maximum amount "
@@ -52,7 +53,6 @@ class FillParams(BaseModel):
52
53
  "holds, it will be clamped to that minimum. Do not use the value in the parameters as "
53
54
  "an outside observer; instead, use the count value from the results."
54
55
  ),
55
- ge=1,
56
56
  )
57
57
 
58
58
 
@@ -66,11 +66,11 @@ class FillResult(BaseModel):
66
66
  ...,
67
67
  description="The labware definition URI of the primary labware.",
68
68
  )
69
- adapterLabwareURI: str | None = Field(
69
+ adapterLabwareURI: str | SkipJsonSchema[None] = Field(
70
70
  None,
71
71
  description="The labware definition URI of the adapter labware.",
72
72
  )
73
- lidLabwareURI: str | None = Field(
73
+ lidLabwareURI: str | SkipJsonSchema[None] = Field(
74
74
  None,
75
75
  description="The labware definition URI of the lid labware.",
76
76
  )
@@ -86,33 +86,33 @@ class RetrieveResult(BaseModel):
86
86
  ...,
87
87
  description="The labware ID of the primary retrieved labware.",
88
88
  )
89
- adapterId: str | None = Field(
89
+ adapterId: str | SkipJsonSchema[None] = Field(
90
90
  None,
91
91
  description="The optional Adapter Labware ID of the adapter under a primary labware.",
92
92
  )
93
- lidId: str | None = Field(
93
+ lidId: str | SkipJsonSchema[None] = Field(
94
94
  None,
95
95
  description="The optional Lid Labware ID of the lid on a primary labware.",
96
96
  )
97
97
  primaryLocationSequence: LabwareLocationSequence = Field(
98
98
  ..., description="The origin location of the primary labware."
99
99
  )
100
- lidLocationSequence: LabwareLocationSequence | None = Field(
100
+ lidLocationSequence: LabwareLocationSequence | SkipJsonSchema[None] = Field(
101
101
  None,
102
102
  description="The origin location of the adapter labware under a primary labware.",
103
103
  )
104
- adapterLocationSequence: LabwareLocationSequence | None = Field(
104
+ adapterLocationSequence: LabwareLocationSequence | SkipJsonSchema[None] = Field(
105
105
  None, description="The origin location of the lid labware on a primary labware."
106
106
  )
107
107
  primaryLabwareURI: str = Field(
108
108
  ...,
109
109
  description="The labware definition URI of the primary labware.",
110
110
  )
111
- adapterLabwareURI: str | None = Field(
111
+ adapterLabwareURI: str | SkipJsonSchema[None] = Field(
112
112
  None,
113
113
  description="The labware definition URI of the adapter labware.",
114
114
  )
115
- lidLabwareURI: str | None = Field(
115
+ lidLabwareURI: str | SkipJsonSchema[None] = Field(
116
116
  None,
117
117
  description="The labware definition URI of the lid labware.",
118
118
  )
@@ -1,10 +1,11 @@
1
1
  """Command models to configure the stored labware pool of a Flex Stacker.."""
2
2
 
3
3
  from __future__ import annotations
4
- from typing import Optional, Literal, TYPE_CHECKING
4
+ from typing import Optional, Literal, TYPE_CHECKING, Annotated
5
5
  from typing_extensions import Type
6
6
 
7
7
  from pydantic import BaseModel, Field
8
+ from pydantic.json_schema import SkipJsonSchema
8
9
 
9
10
  from opentrons_shared_data.labware.labware_definition import LabwareDefinition
10
11
 
@@ -45,21 +46,20 @@ class SetStoredLabwareParams(BaseModel):
45
46
  ...,
46
47
  description="The details of the primary labware (i.e. not the lid or adapter, if any) stored in the stacker.",
47
48
  )
48
- lidLabware: StackerStoredLabwareDetails | None = Field(
49
+ lidLabware: StackerStoredLabwareDetails | SkipJsonSchema[None] = Field(
49
50
  default=None,
50
51
  description="The details of the lid on the primary labware, if any.",
51
52
  )
52
- adapterLabware: StackerStoredLabwareDetails | None = Field(
53
+ adapterLabware: StackerStoredLabwareDetails | SkipJsonSchema[None] = Field(
53
54
  default=None,
54
55
  description="The details of the adapter under the primary labware, if any.",
55
56
  )
56
- initialCount: int | None = Field(
57
+ initialCount: Optional[Annotated[int, Field(ge=0)]] = Field(
57
58
  None,
58
59
  description=(
59
60
  "The number of labware that should be initially stored in the stacker. This number will be silently clamped to "
60
61
  "the maximum number of labware that will fit; do not rely on the parameter to know how many labware are in the stacker."
61
62
  ),
62
- ge=0,
63
63
  )
64
64
 
65
65
 
@@ -69,11 +69,11 @@ class SetStoredLabwareResult(BaseModel):
69
69
  primaryLabwareDefinition: LabwareDefinition = Field(
70
70
  ..., description="The definition of the primary labware."
71
71
  )
72
- lidLabwareDefinition: LabwareDefinition | None = Field(
73
- ..., description="The definition of the lid on the primary labware, if any."
72
+ lidLabwareDefinition: LabwareDefinition | SkipJsonSchema[None] = Field(
73
+ None, description="The definition of the lid on the primary labware, if any."
74
74
  )
75
- adapterLabwareDefinition: LabwareDefinition | None = Field(
76
- ...,
75
+ adapterLabwareDefinition: LabwareDefinition | SkipJsonSchema[None] = Field(
76
+ None,
77
77
  description="The definition of the adapter under the primary labware, if any.",
78
78
  )
79
79
  count: int = Field(
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
  from typing import Optional, Literal, TYPE_CHECKING, Type, Union
5
5
 
6
6
  from pydantic import BaseModel, Field
7
+ from pydantic.json_schema import SkipJsonSchema
7
8
 
8
9
  from ..command import (
9
10
  AbstractCommandImpl,
@@ -51,39 +52,41 @@ class StoreParams(BaseModel):
51
52
  class StoreResult(BaseModel):
52
53
  """Result data from a labware storage command."""
53
54
 
54
- eventualDestinationLocationSequence: LabwareLocationSequence | None = Field(
55
+ eventualDestinationLocationSequence: LabwareLocationSequence | SkipJsonSchema[
56
+ None
57
+ ] = Field(
55
58
  None,
56
59
  description=(
57
60
  "The full location in which all labware moved by this command will eventually reside."
58
61
  ),
59
62
  )
60
- primaryOriginLocationSequence: LabwareLocationSequence | None = Field(
61
- None, description=("The origin location of the primary labware.")
62
- )
63
- primaryLabwareId: str | None = Field(
63
+ primaryOriginLocationSequence: LabwareLocationSequence | SkipJsonSchema[
64
+ None
65
+ ] = Field(None, description=("The origin location of the primary labware."))
66
+ primaryLabwareId: str | SkipJsonSchema[None] = Field(
64
67
  None, description="The primary labware in the stack that was stored."
65
68
  )
66
- adapterOriginLocationSequence: LabwareLocationSequence | None = Field(
67
- None, description=("The origin location of the adapter labware, if any.")
68
- )
69
- adapterLabwareId: str | None = Field(
69
+ adapterOriginLocationSequence: LabwareLocationSequence | SkipJsonSchema[
70
+ None
71
+ ] = Field(None, description=("The origin location of the adapter labware, if any."))
72
+ adapterLabwareId: str | SkipJsonSchema[None] = Field(
70
73
  None, description="The adapter in the stack that was stored, if any."
71
74
  )
72
- lidOriginLocationSequence: LabwareLocationSequence | None = Field(
75
+ lidOriginLocationSequence: LabwareLocationSequence | SkipJsonSchema[None] = Field(
73
76
  None, description=("The origin location of the lid labware, if any.")
74
77
  )
75
- lidLabwareId: str | None = Field(
78
+ lidLabwareId: str | SkipJsonSchema[None] = Field(
76
79
  None, description="The lid in the stack that was stored, if any."
77
80
  )
78
81
  primaryLabwareURI: str = Field(
79
82
  ...,
80
83
  description="The labware definition URI of the primary labware.",
81
84
  )
82
- adapterLabwareURI: str | None = Field(
85
+ adapterLabwareURI: str | SkipJsonSchema[None] = Field(
83
86
  None,
84
87
  description="The labware definition URI of the adapter labware.",
85
88
  )
86
- lidLabwareURI: str | None = Field(
89
+ lidLabwareURI: str | SkipJsonSchema[None] = Field(
87
90
  None,
88
91
  description="The labware definition URI of the lid labware.",
89
92
  )
@@ -484,20 +484,20 @@ class GeometryView:
484
484
  if z_offset < lld_min_height:
485
485
  if isinstance(well_location, PickUpTipWellLocation):
486
486
  raise OperationLocationNotInWellError(
487
- f"Specifying {well_location.origin} with an offset of {well_location.offset} results in an operation location that could be below the bottom of the well"
487
+ f"Specifying {well_location.origin} with a height offset of {well_location.offset.z} results in a height of {z_offset} mm; the minimum allowed height for liquid tracking is {lld_min_height} mm"
488
488
  )
489
489
  else:
490
490
  raise OperationLocationNotInWellError(
491
- f"Specifying {well_location.origin} with an offset of {well_location.offset} and a volume offset of {well_location.volumeOffset} results in an operation location that could be below the bottom of the well"
491
+ f"Specifying {well_location.origin} with a height offset of {well_location.offset.z} results in a height of {z_offset} mm; the minimum allowed height for liquid tracking is {lld_min_height} mm"
492
492
  )
493
493
  elif z_offset < 0:
494
494
  if isinstance(well_location, PickUpTipWellLocation):
495
495
  raise OperationLocationNotInWellError(
496
- f"Specifying {well_location.origin} with an offset of {well_location.offset} results in an operation location below the bottom of the well"
496
+ f"Specifying {well_location.origin} with an offset of {well_location.offset.z} results in a location below the bottom of the well"
497
497
  )
498
498
  else:
499
499
  raise OperationLocationNotInWellError(
500
- f"Specifying {well_location.origin} with an offset of {well_location.offset} and a volume offset of {well_location.volumeOffset} results in an operation location below the bottom of the well"
500
+ f"Specifying {well_location.origin} with an offset of {well_location.offset.z} and a volume offset of {well_location.volumeOffset} results in a location below the bottom of the well"
501
501
  )
502
502
 
503
503
  def get_well_position(
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
  from typing import Literal, Union, TypeGuard
5
5
 
6
6
  from pydantic import BaseModel, Field
7
+ from pydantic.json_schema import SkipJsonSchema
7
8
 
8
9
  from opentrons.types import DeckSlotName, StagingSlotName
9
10
 
@@ -107,7 +108,7 @@ class OnLabwareLocationSequenceComponent(BaseModel):
107
108
 
108
109
  kind: Literal["onLabware"] = "onLabware"
109
110
  labwareId: str
110
- lidId: str | None
111
+ lidId: str | SkipJsonSchema[None] = Field(None)
111
112
 
112
113
 
113
114
  class OnModuleLocationSequenceComponent(BaseModel):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: opentrons
3
- Version: 8.4.0a2
3
+ Version: 8.4.0a3
4
4
  Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
5
5
  Author: Opentrons
6
6
  Author-email: engineering@opentrons.com
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Topic :: Scientific/Engineering
22
22
  Requires-Python: >=3.10
23
23
  License-File: ../LICENSE
24
- Requires-Dist: opentrons-shared-data==8.4.0a2
24
+ Requires-Dist: opentrons-shared-data==8.4.0a3
25
25
  Requires-Dist: aionotify==0.3.1
26
26
  Requires-Dist: anyio<4.0.0,>=3.6.1
27
27
  Requires-Dist: jsonschema<4.18.0,>=3.0.1
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
35
35
  Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
36
36
  Requires-Dist: packaging>=21.0
37
37
  Provides-Extra: ot2-hardware
38
- Requires-Dist: opentrons-hardware==8.4.0a2; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.4.0a3; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.4.0a2; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.4.0a3; extra == "flex-hardware"
41
41
 
42
42
  .. _Full API Documentation: http://docs.opentrons.com
43
43
 
@@ -1,4 +1,4 @@
1
- opentrons-shared-data==8.4.0a2
1
+ opentrons-shared-data==8.4.0a3
2
2
  aionotify==0.3.1
3
3
  anyio<4.0.0,>=3.6.1
4
4
  jsonschema<4.18.0,>=3.0.1
@@ -15,7 +15,7 @@ packaging>=21.0
15
15
  importlib-metadata>=1.0
16
16
 
17
17
  [flex-hardware]
18
- opentrons-hardware[FLEX]==8.4.0a2
18
+ opentrons-hardware[FLEX]==8.4.0a3
19
19
 
20
20
  [ot2-hardware]
21
- opentrons-hardware==8.4.0a2
21
+ opentrons-hardware==8.4.0a3
File without changes
File without changes