opentrons 8.5.0a1__tar.gz → 8.5.0a2__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.

Potentially problematic release.


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

Files changed (598) hide show
  1. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/PKG-INFO +4 -4
  2. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/flex_protocol.py +25 -0
  3. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/ot3controller.py +76 -1
  4. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/ot3simulator.py +27 -0
  5. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +1 -0
  6. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/ot3api.py +32 -0
  7. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_transfer_liquid_validation.py +2 -2
  8. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/protocol.py +2 -2
  9. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +2 -2
  10. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/protocol.py +2 -2
  11. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/instrument_context.py +15 -6
  12. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/protocol_context.py +9 -8
  13. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_labware.py +0 -19
  14. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/labware_validation.py +7 -1
  15. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/labware.py +12 -0
  16. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/liquid_level_detection.py +68 -8
  17. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/PKG-INFO +4 -4
  18. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/requires.txt +3 -3
  19. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/MANIFEST.in +0 -0
  20. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/README.rst +0 -0
  21. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/setup.cfg +0 -0
  22. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/setup.py +0 -0
  23. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/__init__.py +0 -0
  24. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/_version.py +0 -0
  25. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/__init__.py +0 -0
  26. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
  27. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
  28. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/file_operators.py +0 -0
  29. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/helpers.py +0 -0
  30. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
  31. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
  32. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
  33. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
  34. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
  35. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
  36. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
  37. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
  38. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
  39. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
  40. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
  41. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
  42. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
  43. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
  44. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/calibration_storage/types.py +0 -0
  45. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/cli/__init__.py +0 -0
  46. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/cli/__main__.py +0 -0
  47. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/cli/analyze.py +0 -0
  48. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/__init__.py +0 -0
  49. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/advanced_settings.py +0 -0
  50. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/defaults_ot2.py +0 -0
  51. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/defaults_ot3.py +0 -0
  52. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/feature_flags.py +0 -0
  53. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/gripper_config.py +0 -0
  54. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/reset.py +0 -0
  55. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/robot_configs.py +0 -0
  56. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/config/types.py +0 -0
  57. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/__init__.py +0 -0
  58. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
  59. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
  60. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
  61. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
  62. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
  63. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
  64. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/asyncio/__init__.py +0 -0
  65. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
  66. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
  67. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
  68. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/asyncio/communication/serial_connection.py +0 -0
  69. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/command_builder.py +0 -0
  70. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
  71. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
  72. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
  73. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
  74. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
  75. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/types.py +0 -0
  76. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
  77. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
  78. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
  79. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
  80. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
  81. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
  82. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
  83. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/mag_deck/driver.py +0 -0
  84. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
  85. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
  86. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
  87. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
  88. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
  89. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
  90. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
  91. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
  92. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
  93. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/serial_communication.py +0 -0
  94. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
  95. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
  96. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
  97. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
  98. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
  99. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
  100. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
  101. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
  102. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
  103. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
  104. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/temp_deck/driver.py +0 -0
  105. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
  106. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
  107. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
  108. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/thermocycler/driver.py +0 -0
  109. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
  110. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/types.py +0 -0
  111. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/drivers/utils.py +0 -0
  112. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/execute.py +0 -0
  113. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/__init__.py +0 -0
  114. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/__main__.py +0 -0
  115. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/adapters.py +0 -0
  116. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/api.py +0 -0
  117. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/__init__.py +0 -0
  118. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/controller.py +0 -0
  119. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/errors.py +0 -0
  120. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
  121. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
  122. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/simulator.py +0 -0
  123. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
  124. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
  125. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
  126. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/backends/types.py +0 -0
  127. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/constants.py +0 -0
  128. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/dev_types.py +0 -0
  129. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
  130. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
  131. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/app.py +0 -0
  132. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
  133. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
  134. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
  135. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
  136. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
  137. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
  138. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
  139. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
  140. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/parser.py +0 -0
  141. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
  142. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
  143. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
  144. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
  145. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
  146. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
  147. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/settings.py +0 -0
  148. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
  149. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
  150. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
  151. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
  152. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/types.py +0 -0
  153. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/emulation/util.py +0 -0
  154. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/errors.py +0 -0
  155. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/execution_manager.py +0 -0
  156. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
  157. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
  158. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
  159. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
  160. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
  161. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
  162. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
  163. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
  164. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
  165. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
  166. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
  167. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/module_control.py +0 -0
  168. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/__init__.py +0 -0
  169. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
  170. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/errors.py +0 -0
  171. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
  172. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
  173. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
  174. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
  175. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
  176. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
  177. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
  178. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
  179. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
  180. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/types.py +0 -0
  181. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/update.py +0 -0
  182. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/modules/utils.py +0 -0
  183. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/motion_utilities.py +0 -0
  184. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
  185. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
  186. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/pause_manager.py +0 -0
  187. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/poller.py +0 -0
  188. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
  189. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
  190. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
  191. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
  192. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
  193. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
  194. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
  195. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
  196. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
  197. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
  198. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
  199. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
  200. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
  201. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/liquid_handler.py +0 -0
  202. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
  203. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
  204. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
  205. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
  206. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
  207. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/protocols/types.py +0 -0
  208. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/robot_calibration.py +0 -0
  209. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
  210. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
  211. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/scripts/repl.py +0 -0
  212. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
  213. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/simulator_setup.py +0 -0
  214. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/thread_manager.py +0 -0
  215. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
  216. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/types.py +0 -0
  217. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/hardware_control/util.py +0 -0
  218. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_broker.py +0 -0
  219. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/__init__.py +0 -0
  220. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/commands.py +0 -0
  221. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/helpers.py +0 -0
  222. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/module_commands.py +0 -0
  223. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
  224. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/publisher.py +0 -0
  225. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/robot_commands.py +0 -0
  226. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/legacy_commands/types.py +0 -0
  227. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/__init__.py +0 -0
  228. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
  229. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/deck_conflict.py +0 -0
  230. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/errors.py +0 -0
  231. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/types.py +0 -0
  232. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/motion_planning/waypoints.py +0 -0
  233. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/ordered_set.py +0 -0
  234. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/__init__.py +0 -0
  235. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_liquid.py +0 -0
  236. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
  237. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
  238. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_parameter_context.py +0 -0
  239. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_parameters.py +0 -0
  240. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/_types.py +0 -0
  241. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/config.py +0 -0
  242. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/__init__.py +0 -0
  243. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/common.py +0 -0
  244. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/core_map.py +0 -0
  245. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
  246. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
  247. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
  248. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/instrument.py +0 -0
  249. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
  250. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
  251. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
  252. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
  253. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +0 -0
  254. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
  255. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
  256. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
  257. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +0 -0
  258. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/engine/well.py +0 -0
  259. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/instrument.py +0 -0
  260. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/labware.py +0 -0
  261. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
  262. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
  263. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
  264. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +0 -0
  265. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
  266. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
  267. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -0
  268. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
  269. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
  270. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
  271. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
  272. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +0 -0
  273. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
  274. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/module.py +0 -0
  275. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/robot.py +0 -0
  276. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/well.py +0 -0
  277. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/core/well_grid.py +0 -0
  278. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
  279. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/deck.py +0 -0
  280. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/disposal_locations.py +0 -0
  281. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/labware.py +0 -0
  282. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/module_contexts.py +0 -0
  283. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
  284. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/robot_context.py +0 -0
  285. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_api/validation.py +0 -0
  286. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/__init__.py +0 -0
  287. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
  288. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
  289. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
  290. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/actions/actions.py +0 -0
  291. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
  292. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
  293. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
  294. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/clients/transports.py +0 -0
  295. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
  296. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
  297. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
  298. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
  299. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
  300. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
  301. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
  302. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
  303. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
  304. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +0 -0
  305. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
  306. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
  307. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
  308. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
  309. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
  310. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
  311. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
  312. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/command.py +0 -0
  313. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
  314. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/comment.py +0 -0
  315. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
  316. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
  317. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/custom.py +0 -0
  318. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
  319. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
  320. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +0 -0
  321. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
  322. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
  323. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
  324. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/close_latch.py +0 -0
  325. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
  326. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +0 -0
  327. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +0 -0
  328. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/open_latch.py +0 -0
  329. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/prepare_shuttle.py +0 -0
  330. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +0 -0
  331. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +0 -0
  332. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +0 -0
  333. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
  334. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
  335. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
  336. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
  337. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
  338. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
  339. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
  340. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
  341. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
  342. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
  343. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
  344. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
  345. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/home.py +0 -0
  346. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
  347. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
  348. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
  349. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
  350. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
  351. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
  352. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
  353. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
  354. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
  355. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
  356. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
  357. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
  358. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
  359. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
  360. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
  361. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
  362. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
  363. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
  364. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
  365. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/pipetting_common.py +0 -0
  366. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
  367. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/pressure_dispense.py +0 -0
  368. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
  369. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
  370. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
  371. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
  372. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
  373. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
  374. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
  375. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
  376. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
  377. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
  378. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/seal_pipette_to_tip.py +0 -0
  379. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
  380. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
  381. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
  382. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
  383. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
  384. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
  385. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
  386. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
  387. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
  388. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
  389. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
  390. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
  391. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
  392. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
  393. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
  394. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
  395. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
  396. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
  397. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
  398. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
  399. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
  400. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
  401. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
  402. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
  403. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
  404. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +0 -0
  405. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
  406. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
  407. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
  408. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
  409. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/engine_support.py +0 -0
  410. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
  411. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
  412. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
  413. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
  414. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
  415. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/command_executor.py +0 -0
  416. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
  417. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
  418. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
  419. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
  420. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
  421. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
  422. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
  423. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
  424. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/movement.py +0 -0
  425. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/pipetting.py +0 -0
  426. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
  427. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
  428. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
  429. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
  430. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
  431. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
  432. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
  433. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
  434. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
  435. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/notes/notes.py +0 -0
  436. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/plugins.py +0 -0
  437. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
  438. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
  439. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
  440. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
  441. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
  442. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
  443. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
  444. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
  445. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
  446. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
  447. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
  448. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
  449. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/__init__.py +0 -0
  450. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
  451. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
  452. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
  453. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
  454. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/command_history.py +0 -0
  455. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/commands.py +0 -0
  456. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/config.py +0 -0
  457. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/files.py +0 -0
  458. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
  459. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/frustum_helpers.py +0 -0
  460. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/geometry.py +0 -0
  461. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
  462. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/liquids.py +0 -0
  463. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
  464. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
  465. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
  466. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
  467. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
  468. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
  469. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
  470. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
  471. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/modules.py +0 -0
  472. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/motion.py +0 -0
  473. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
  474. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/state.py +0 -0
  475. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
  476. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/tips.py +0 -0
  477. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/update_types.py +0 -0
  478. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/state/wells.py +0 -0
  479. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/__init__.py +0 -0
  480. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
  481. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
  482. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
  483. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/execution.py +0 -0
  484. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
  485. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/instrument.py +0 -0
  486. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
  487. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/labware.py +0 -0
  488. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
  489. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
  490. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
  491. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/liquid.py +0 -0
  492. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
  493. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
  494. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/location.py +0 -0
  495. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/module.py +0 -0
  496. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
  497. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
  498. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/tip.py +0 -0
  499. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/util.py +0 -0
  500. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_engine/types/well_position.py +0 -0
  501. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/__init__.py +0 -0
  502. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
  503. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
  504. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/file_hasher.py +0 -0
  505. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/file_identifier.py +0 -0
  506. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
  507. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/input_file.py +0 -0
  508. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
  509. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
  510. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/protocol_source.py +0 -0
  511. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
  512. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/__init__.py +0 -0
  513. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
  514. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
  515. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/json_translator.py +0 -0
  516. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/legacy_command_mapper.py +0 -0
  517. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
  518. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
  519. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
  520. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
  521. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocol_runner/task_queue.py +0 -0
  522. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/__init__.py +0 -0
  523. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
  524. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/common.py +0 -0
  525. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/mix.py +0 -0
  526. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  527. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
  528. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
  529. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +0 -0
  530. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/__init__.py +0 -0
  531. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/constants.py +0 -0
  532. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/deck_type.py +0 -0
  533. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/definitions.py +0 -0
  534. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/instrument.py +0 -0
  535. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/labware_like.py +0 -0
  536. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
  537. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/types.py +0 -0
  538. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/api_support/util.py +0 -0
  539. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/bundle.py +0 -0
  540. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/duration/__init__.py +0 -0
  541. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/duration/errors.py +0 -0
  542. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/duration/estimator.py +0 -0
  543. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/__init__.py +0 -0
  544. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/dev_types.py +0 -0
  545. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/errors.py +0 -0
  546. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/execute.py +0 -0
  547. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
  548. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
  549. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
  550. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/execute_python.py +0 -0
  551. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
  552. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/execution/types.py +0 -0
  553. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/geometry/__init__.py +0 -0
  554. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/geometry/labware_geometry.py +0 -0
  555. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/geometry/planning.py +0 -0
  556. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/labware.py +0 -0
  557. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/models/__init__.py +0 -0
  558. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/models/json_protocol.py +0 -0
  559. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/__init__.py +0 -0
  560. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
  561. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
  562. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/exceptions.py +0 -0
  563. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
  564. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/types.py +0 -0
  565. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parameters/validation.py +0 -0
  566. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/parse.py +0 -0
  567. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/protocols/types.py +0 -0
  568. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/py.typed +0 -0
  569. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/resources/scripts/lpc21isp +0 -0
  570. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
  571. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/simulate.py +0 -0
  572. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/__init__.py +0 -0
  573. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/camera.py +0 -0
  574. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/log_control.py +0 -0
  575. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/nmcli.py +0 -0
  576. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/resin.py +0 -0
  577. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/smoothie_update.py +0 -0
  578. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/system/wifi.py +0 -0
  579. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/tools/__init__.py +0 -0
  580. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/tools/args_handler.py +0 -0
  581. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/tools/write_pipette_memory.py +0 -0
  582. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/types.py +0 -0
  583. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/__init__.py +0 -0
  584. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/async_helpers.py +0 -0
  585. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/broker.py +0 -0
  586. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/change_notifier.py +0 -0
  587. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/entrypoint_util.py +0 -0
  588. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/get_union_elements.py +0 -0
  589. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/helpers.py +0 -0
  590. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/linal.py +0 -0
  591. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/logging_config.py +0 -0
  592. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/logging_queue_handler.py +0 -0
  593. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons/util/performance_helpers.py +0 -0
  594. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/SOURCES.txt +0 -0
  595. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/dependency_links.txt +0 -0
  596. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/entry_points.txt +0 -0
  597. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/src/opentrons.egg-info/not-zip-safe +0 -0
  598. {opentrons-8.5.0a1 → opentrons-8.5.0a2}/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.5.0a1
3
+ Version: 8.5.0a2
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.5.0a1
24
+ Requires-Dist: opentrons-shared-data==8.5.0a2
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.5.0a1; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.5.0a2; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.5.0a1; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.5.0a2; extra == "flex-hardware"
41
41
 
42
42
  .. _Full API Documentation: http://docs.opentrons.com
43
43
 
@@ -42,6 +42,7 @@ from opentrons.hardware_control.module_control import AttachedModulesControl
42
42
  from ..dev_types import OT3AttachedInstruments
43
43
  from .types import HWStopCondition
44
44
 
45
+
45
46
  Cls = TypeVar("Cls")
46
47
 
47
48
 
@@ -466,3 +467,27 @@ class FlexBackend(Protocol):
466
467
  async def increase_evo_disp_count(self, mount: OT3Mount) -> None:
467
468
  """Tell a pipette to increase it's evo-tip-dispense-count in eeprom."""
468
469
  ...
470
+
471
+ async def read_env_temp_sensor(
472
+ self, mount: OT3Mount, primary: bool
473
+ ) -> Optional[float]:
474
+ """Read and return the current sensor information."""
475
+ ...
476
+
477
+ async def read_env_hum_sensor(
478
+ self, mount: OT3Mount, primary: bool
479
+ ) -> Optional[float]:
480
+ """Read and return the current sensor information."""
481
+ ...
482
+
483
+ async def read_pressure_sensor(
484
+ self, mount: OT3Mount, primary: bool
485
+ ) -> Optional[float]:
486
+ """Read and return the current sensor information."""
487
+ ...
488
+
489
+ async def read_capacitive_sensor(
490
+ self, mount: OT3Mount, primary: bool
491
+ ) -> Optional[float]:
492
+ """Read and return the current sensor information."""
493
+ ...
@@ -215,7 +215,13 @@ from ..types import HepaFanState, HepaUVState, StatusBarState
215
215
  from .types import HWStopCondition
216
216
  from .flex_protocol import FlexBackend
217
217
  from .status_bar_state import StatusBarStateController
218
- from opentrons_hardware.sensors.types import SensorDataType
218
+ from opentrons_hardware.sensors.sensor_types import (
219
+ EnvironmentSensor,
220
+ CapacitiveSensor,
221
+ PressureSensor,
222
+ )
223
+ from opentrons_hardware.sensors.types import SensorDataType, EnvironmentSensorDataType
224
+ from opentrons_hardware.sensors.sensor_driver import SensorDriver
219
225
  from opentrons_hardware.sensors.utils import send_evo_dispense_count_increase
220
226
 
221
227
  log = logging.getLogger(__name__)
@@ -1835,3 +1841,72 @@ class OT3Controller(FlexBackend):
1835
1841
  await send_evo_dispense_count_increase(
1836
1842
  self._messenger, sensor_node_for_pipette(OT3Mount(mount.value))
1837
1843
  )
1844
+
1845
+ async def _read_env_sensor(
1846
+ self, mount: OT3Mount, primary: bool
1847
+ ) -> Optional[EnvironmentSensorDataType]:
1848
+ """Read and return the current sensor information."""
1849
+ sensor = EnvironmentSensor.build(
1850
+ sensor_id=SensorId.S0 if primary else SensorId.S1,
1851
+ node_id=sensor_node_for_mount(mount),
1852
+ )
1853
+ s_driver = SensorDriver()
1854
+ sensor_data = await s_driver.read(
1855
+ can_messenger=self._messenger,
1856
+ sensor=sensor,
1857
+ offset=False,
1858
+ )
1859
+ assert sensor_data is None or isinstance(sensor_data, EnvironmentSensorDataType)
1860
+ return sensor_data
1861
+
1862
+ async def read_env_temp_sensor(
1863
+ self, mount: OT3Mount, primary: bool
1864
+ ) -> Optional[float]:
1865
+ """Read and return the current sensor information."""
1866
+ s_data = await self._read_env_sensor(mount, primary)
1867
+ if s_data is None or s_data.temperature is None:
1868
+ return None
1869
+ return s_data.temperature.to_float()
1870
+
1871
+ async def read_env_hum_sensor(
1872
+ self, mount: OT3Mount, primary: bool
1873
+ ) -> Optional[float]:
1874
+ """Read and return the current sensor information."""
1875
+ s_data = await self._read_env_sensor(mount, primary)
1876
+ if s_data is None or s_data.humidity is None:
1877
+ return None
1878
+ return s_data.humidity.to_float()
1879
+
1880
+ async def read_pressure_sensor(
1881
+ self, mount: OT3Mount, primary: bool
1882
+ ) -> Optional[float]:
1883
+ """Read and return the current sensor information."""
1884
+ sensor = PressureSensor.build(
1885
+ sensor_id=SensorId.S0 if primary else SensorId.S1,
1886
+ node_id=sensor_node_for_mount(mount),
1887
+ )
1888
+ s_driver = SensorDriver()
1889
+ sensor_data = await s_driver.read(
1890
+ can_messenger=self._messenger,
1891
+ sensor=sensor,
1892
+ offset=False,
1893
+ )
1894
+ assert sensor_data is None or isinstance(sensor_data, SensorDataType)
1895
+ return sensor_data.to_float() if sensor_data else None
1896
+
1897
+ async def read_capacitive_sensor(
1898
+ self, mount: OT3Mount, primary: bool
1899
+ ) -> Optional[float]:
1900
+ """Read and return the current sensor information."""
1901
+ sensor = CapacitiveSensor.build(
1902
+ sensor_id=SensorId.S0 if primary else SensorId.S1,
1903
+ node_id=sensor_node_for_mount(mount),
1904
+ )
1905
+ s_driver = SensorDriver()
1906
+ sensor_data = await s_driver.read(
1907
+ can_messenger=self._messenger,
1908
+ sensor=sensor,
1909
+ offset=False,
1910
+ )
1911
+ assert sensor_data is None or isinstance(sensor_data, SensorDataType)
1912
+ return sensor_data.to_float() if sensor_data else None
@@ -67,6 +67,7 @@ from .flex_protocol import (
67
67
  FlexBackend,
68
68
  )
69
69
 
70
+
70
71
  log = logging.getLogger(__name__)
71
72
 
72
73
  AXIS_TO_SUBSYSTEM = {
@@ -874,3 +875,29 @@ class OT3Simulator(FlexBackend):
874
875
 
875
876
  async def increase_evo_disp_count(self, mount: OT3Mount) -> None:
876
877
  pass
878
+
879
+ async def read_env_temp_sensor(
880
+ self, mount: OT3Mount, primary: bool
881
+ ) -> Optional[float]:
882
+ """Read and return the current sensor information."""
883
+
884
+ return 0.0
885
+
886
+ async def read_env_hum_sensor(
887
+ self, mount: OT3Mount, primary: bool
888
+ ) -> Optional[float]:
889
+ """Read and return the current sensor information."""
890
+
891
+ return 0.0
892
+
893
+ async def read_pressure_sensor(
894
+ self, mount: OT3Mount, primary: bool
895
+ ) -> Optional[float]:
896
+ """Read and return the current sensor information."""
897
+ return 0.0
898
+
899
+ async def read_capacitive_sensor(
900
+ self, mount: OT3Mount, primary: bool
901
+ ) -> Optional[float]:
902
+ """Read and return the current sensor information."""
903
+ return 0.0
@@ -665,6 +665,7 @@ class OT3PipetteHandler:
665
665
  return None
666
666
 
667
667
  if is_full_dispense:
668
+ disp_vol = instrument.current_volume
668
669
  if push_out is None:
669
670
  push_out_ul = instrument.push_out_volume
670
671
  else:
@@ -3140,3 +3140,35 @@ class OT3API(
3140
3140
  """Tell a pipette to increase its evo-tip-dispense-count in eeprom."""
3141
3141
  realmount = OT3Mount.from_mount(mount)
3142
3142
  await self._backend.increase_evo_disp_count(realmount)
3143
+
3144
+ async def read_stem_temperature(
3145
+ self, mount: Union[top_types.Mount, OT3Mount], primary: bool = True
3146
+ ) -> float:
3147
+ """Read and return the current stem temperature."""
3148
+ realmount = OT3Mount.from_mount(mount)
3149
+ s_data = await self._backend.read_env_temp_sensor(realmount, primary)
3150
+ return s_data if s_data else 0.0
3151
+
3152
+ async def read_stem_humidity(
3153
+ self, mount: Union[top_types.Mount, OT3Mount], primary: bool = True
3154
+ ) -> float:
3155
+ """Read and return the current primary stem humidity."""
3156
+ realmount = OT3Mount.from_mount(mount)
3157
+ s_data = await self._backend.read_env_hum_sensor(realmount, primary)
3158
+ return s_data if s_data else 0.0
3159
+
3160
+ async def read_stem_pressure(
3161
+ self, mount: Union[top_types.Mount, OT3Mount], primary: bool = True
3162
+ ) -> float:
3163
+ """Read and return the current primary stem pressure."""
3164
+ realmount = OT3Mount.from_mount(mount)
3165
+ s_data = await self._backend.read_pressure_sensor(realmount, primary)
3166
+ return s_data if s_data else 0.0
3167
+
3168
+ async def read_stem_capacitance(
3169
+ self, mount: Union[top_types.Mount, OT3Mount], primary: bool = True
3170
+ ) -> float:
3171
+ """Read and return the current primary stem capacitance."""
3172
+ realmount = OT3Mount.from_mount(mount)
3173
+ s_data = await self._backend.read_capacitive_sensor(realmount, primary)
3174
+ return s_data if s_data else 0.0
@@ -33,7 +33,7 @@ def verify_and_normalize_transfer_args(
33
33
  last_tip_picked_up_from: Optional[Well],
34
34
  tip_racks: List[Labware],
35
35
  nozzle_map: NozzleMapInterface,
36
- target_all_wells: bool,
36
+ group_wells_for_multi_channel: bool,
37
37
  current_volume: float,
38
38
  trash_location: Union[Location, Well, Labware, TrashBin, WasteChute],
39
39
  ) -> TransferInfo:
@@ -43,7 +43,7 @@ def verify_and_normalize_transfer_args(
43
43
  else:
44
44
  # If trash bin or waste chute, set this to empty to have less isinstance checks after this
45
45
  flat_dests_list = []
46
- if not target_all_wells and nozzle_map.tip_count > 1:
46
+ if group_wells_for_multi_channel and nozzle_map.tip_count > 1:
47
47
  flat_sources_list = tx_liquid_utils.group_wells_for_multi_channel_transfer(
48
48
  flat_sources_list, nozzle_map
49
49
  )
@@ -1094,8 +1094,8 @@ class ProtocolCore(
1094
1094
  display_color=(liquid.displayColor.root if liquid.displayColor else None),
1095
1095
  )
1096
1096
 
1097
- def define_liquid_class(self, name: str, version: int) -> LiquidClass:
1098
- """Define a liquid class for use in transfer functions."""
1097
+ def get_liquid_class(self, name: str, version: int) -> LiquidClass:
1098
+ """Get an instance of a built-in liquid class."""
1099
1099
  try:
1100
1100
  # Check if we have already loaded this liquid class' definition
1101
1101
  liquid_class_def = self._liquid_class_def_cache[(name, version)]
@@ -599,8 +599,8 @@ class LegacyProtocolCore(
599
599
  """Define a liquid to load into a well."""
600
600
  assert False, "define_liquid only supported on engine core"
601
601
 
602
- def define_liquid_class(self, name: str, version: int) -> LiquidClass:
603
- """Define a liquid class."""
602
+ def get_liquid_class(self, name: str, version: int) -> LiquidClass:
603
+ """Get an instance of a built-in liquid class."""
604
604
  assert False, "define_liquid_class is only supported on engine core"
605
605
 
606
606
  def get_labware_location(
@@ -311,8 +311,8 @@ class AbstractProtocol(
311
311
  """Define a liquid to load into a well."""
312
312
 
313
313
  @abstractmethod
314
- def define_liquid_class(self, name: str, version: int) -> LiquidClass:
315
- """Define a liquid class for use in transfer functions."""
314
+ def get_liquid_class(self, name: str, version: int) -> LiquidClass:
315
+ """Get an instance of a built-in liquid class."""
316
316
 
317
317
  @abstractmethod
318
318
  def get_labware_location(
@@ -1794,7 +1794,7 @@ class InstrumentContext(publisher.CommandPublisher):
1794
1794
  Union[types.Location, labware.Well, TrashBin, WasteChute]
1795
1795
  ] = None,
1796
1796
  return_tip: bool = False,
1797
- visit_every_well: bool = False,
1797
+ group_wells: bool = True,
1798
1798
  ) -> InstrumentContext:
1799
1799
  """Move a particular type of liquid from one well or group of wells to another.
1800
1800
 
@@ -1827,6 +1827,9 @@ class InstrumentContext(publisher.CommandPublisher):
1827
1827
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
1828
1828
  :param return_tip: Whether to drop used tips in their original locations
1829
1829
  in the tip rack, instead of the trash.
1830
+ :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
1831
+ given into a single transfer step, taking into account the tip configuration. If ``False``, target
1832
+ each well given with the primary nozzle. Defaults to ``True``.
1830
1833
 
1831
1834
  :meta private:
1832
1835
  """
@@ -1844,7 +1847,7 @@ class InstrumentContext(publisher.CommandPublisher):
1844
1847
  last_tip_picked_up_from=self._last_tip_picked_up_from,
1845
1848
  tip_racks=self._tip_racks,
1846
1849
  nozzle_map=self._core.get_nozzle_map(),
1847
- target_all_wells=visit_every_well,
1850
+ group_wells_for_multi_channel=group_wells,
1848
1851
  current_volume=self.current_volume,
1849
1852
  trash_location=(
1850
1853
  trash_location if trash_location is not None else self.trash_container
@@ -1913,7 +1916,7 @@ class InstrumentContext(publisher.CommandPublisher):
1913
1916
  Union[types.Location, labware.Well, TrashBin, WasteChute]
1914
1917
  ] = None,
1915
1918
  return_tip: bool = False,
1916
- visit_every_well: bool = False,
1919
+ group_wells: bool = True,
1917
1920
  ) -> InstrumentContext:
1918
1921
  """
1919
1922
  Distribute a particular type of liquid from one well to a group of wells.
@@ -1943,6 +1946,9 @@ class InstrumentContext(publisher.CommandPublisher):
1943
1946
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
1944
1947
  :param return_tip: Whether to drop used tips in their original locations
1945
1948
  in the tip rack, instead of the trash.
1949
+ :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
1950
+ given into a single transfer step, taking into account the tip configuration. If ``False``, target
1951
+ each well given with the primary nozzle. Defaults to ``True``.
1946
1952
 
1947
1953
  :meta private:
1948
1954
  """
@@ -1960,7 +1966,7 @@ class InstrumentContext(publisher.CommandPublisher):
1960
1966
  last_tip_picked_up_from=self._last_tip_picked_up_from,
1961
1967
  tip_racks=self._tip_racks,
1962
1968
  nozzle_map=self._core.get_nozzle_map(),
1963
- target_all_wells=visit_every_well,
1969
+ group_wells_for_multi_channel=group_wells,
1964
1970
  current_volume=self.current_volume,
1965
1971
  trash_location=(
1966
1972
  trash_location if trash_location is not None else self.trash_container
@@ -2035,7 +2041,7 @@ class InstrumentContext(publisher.CommandPublisher):
2035
2041
  Union[types.Location, labware.Well, TrashBin, WasteChute]
2036
2042
  ] = None,
2037
2043
  return_tip: bool = False,
2038
- visit_every_well: bool = False,
2044
+ group_wells: bool = True,
2039
2045
  ) -> InstrumentContext:
2040
2046
  """
2041
2047
  Consolidate a particular type of liquid from a group of wells to one well.
@@ -2066,6 +2072,9 @@ class InstrumentContext(publisher.CommandPublisher):
2066
2072
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
2067
2073
  :param return_tip: Whether to drop used tips in their original locations
2068
2074
  in the tip rack, instead of the trash.
2075
+ :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
2076
+ given into a single transfer step, taking into account the tip configuration. If ``False``, target
2077
+ each well given with the primary nozzle. Defaults to ``True``.
2069
2078
 
2070
2079
  :meta private:
2071
2080
  """
@@ -2083,7 +2092,7 @@ class InstrumentContext(publisher.CommandPublisher):
2083
2092
  last_tip_picked_up_from=self._last_tip_picked_up_from,
2084
2093
  tip_racks=self._tip_racks,
2085
2094
  nozzle_map=self._core.get_nozzle_map(),
2086
- target_all_wells=visit_every_well,
2095
+ group_wells_for_multi_channel=group_wells,
2087
2096
  current_volume=self.current_volume,
2088
2097
  trash_location=(
2089
2098
  trash_location if trash_location is not None else self.trash_container
@@ -1371,22 +1371,23 @@ class ProtocolContext(CommandPublisher):
1371
1371
  display_color=display_color,
1372
1372
  )
1373
1373
 
1374
- @requires_version(2, 23)
1375
- def define_liquid_class(
1374
+ @requires_version(2, 24)
1375
+ def get_liquid_class(
1376
1376
  self,
1377
1377
  name: str,
1378
1378
  ) -> LiquidClass:
1379
1379
  """
1380
- Define a liquid class for use in the protocol.
1381
- ..
1382
- This is intended for Opentrons internal use only and is not a guaranteed API.
1380
+ Get an instance of a built-in liquid class for use in the protocol.
1383
1381
 
1384
- :meta private:
1382
+ Args:
1383
+ name: Name of an Opentrons-defined liquid class.
1384
+
1385
+ :raises: ``LiquidClassDefinitionDoesNotExist``: if the specified liquid class does not exist.
1385
1386
  """
1386
- return self._core.define_liquid_class(name=name, version=DEFAULT_LC_VERSION)
1387
+ return self._core.get_liquid_class(name=name, version=DEFAULT_LC_VERSION)
1387
1388
 
1388
1389
  @requires_version(2, 24)
1389
- def define_custom_liquid_class(
1390
+ def define_liquid_class(
1390
1391
  self,
1391
1392
  name: str,
1392
1393
  properties: Dict[str, Dict[str, TransferPropertiesDict]],
@@ -165,25 +165,6 @@ class LoadLabwareImplementation(
165
165
  top_labware_definition=loaded_labware.definition,
166
166
  bottom_labware_id=verified_location.labwareId,
167
167
  )
168
- # Validate load location is valid for lids
169
- if labware_validation.validate_definition_is_lid(
170
- definition=loaded_labware.definition
171
- ):
172
- # This parent is assumed to be compatible, unless the lid enumerates
173
- # all its compatible parents and this parent is missing from the list.
174
- parent_is_incompatible = (
175
- loaded_labware.definition.compatibleParentLabware is not None
176
- and self._state_view.labware.get_load_name(
177
- verified_location.labwareId
178
- )
179
- not in loaded_labware.definition.compatibleParentLabware
180
- )
181
-
182
- if parent_is_incompatible:
183
- raise ValueError(
184
- f"Labware Lid {params.loadName} may not be loaded on parent labware"
185
- f" {self._state_view.labware.get_display_name(verified_location.labwareId)}."
186
- )
187
168
 
188
169
  # Validate labware for the absorbance reader
189
170
  if self._is_loading_to_module(
@@ -48,7 +48,13 @@ def validate_labware_can_be_stacked(
48
48
  top_labware_definition: LabwareDefinition, below_labware_load_name: str
49
49
  ) -> bool:
50
50
  """Validate that the labware being loaded onto is in the above labware's stackingOffsetWithLabware definition."""
51
- return below_labware_load_name in top_labware_definition.stackingOffsetWithLabware
51
+ return (
52
+ below_labware_load_name in top_labware_definition.stackingOffsetWithLabware
53
+ or (
54
+ "default" in top_labware_definition.stackingOffsetWithLabware
55
+ and top_labware_definition.compatibleParentLabware is None
56
+ )
57
+ )
52
58
 
53
59
 
54
60
  def validate_labware_can_be_ondeck(definition: LabwareDefinition) -> bool:
@@ -1131,6 +1131,18 @@ class LabwareView:
1131
1131
  raise errors.LabwareCannotBeStackedError(
1132
1132
  f"Labware {top_labware_definition.parameters.loadName} cannot be loaded onto labware {below_labware.loadName}"
1133
1133
  )
1134
+ elif (
1135
+ labware_validation.validate_definition_is_lid(top_labware_definition)
1136
+ and top_labware_definition.compatibleParentLabware is not None
1137
+ and self.get_load_name(bottom_labware_id)
1138
+ not in top_labware_definition.compatibleParentLabware
1139
+ ):
1140
+ # This parent is assumed to be compatible, unless the lid enumerates
1141
+ # all its compatible parents and this parent is missing from the list.
1142
+ raise ValueError(
1143
+ f"Labware Lid {top_labware_definition.parameters.loadName} may not be loaded on parent labware"
1144
+ f" {self.get_display_name(bottom_labware_id)}."
1145
+ )
1134
1146
  elif isinstance(below_labware.location, ModuleLocation):
1135
1147
  below_definition = self.get_definition(labware_id=below_labware.id)
1136
1148
  if not labware_validation.validate_definition_is_adapter(
@@ -27,42 +27,102 @@ class SimulatedProbeResult(BaseModel):
27
27
  return data
28
28
 
29
29
  def __add__(
30
- self, other: float | SimulatedProbeResult
30
+ self, other: float | int | SimulatedProbeResult
31
31
  ) -> float | SimulatedProbeResult:
32
32
  """Bypass addition and just return self."""
33
33
  return self
34
34
 
35
35
  def __sub__(
36
- self, other: float | SimulatedProbeResult
36
+ self, other: float | int | SimulatedProbeResult
37
37
  ) -> float | SimulatedProbeResult:
38
38
  """Bypass subtraction and just return self."""
39
39
  return self
40
40
 
41
41
  def __radd__(
42
- self, other: float | SimulatedProbeResult
42
+ self, other: float | int | SimulatedProbeResult
43
43
  ) -> float | SimulatedProbeResult:
44
44
  """Bypass addition and just return self."""
45
45
  return self
46
46
 
47
47
  def __rsub__(
48
- self, other: float | SimulatedProbeResult
48
+ self, other: float | int | SimulatedProbeResult
49
49
  ) -> float | SimulatedProbeResult:
50
50
  """Bypass subtraction and just return self."""
51
51
  return self
52
52
 
53
- def __gt__(self, other: float | SimulatedProbeResult) -> bool:
53
+ def __mul__(
54
+ self, other: float | int | SimulatedProbeResult
55
+ ) -> float | SimulatedProbeResult:
56
+ """Bypass multiplication and just return self."""
57
+ return self
58
+
59
+ def __rmul__(
60
+ self, other: float | int | SimulatedProbeResult
61
+ ) -> float | SimulatedProbeResult:
62
+ """Bypass multiplication and just return self."""
63
+ return self
64
+
65
+ def __truediv__(
66
+ self, other: float | int | SimulatedProbeResult
67
+ ) -> float | SimulatedProbeResult:
68
+ """Bypass division and just return self."""
69
+ return self
70
+
71
+ def __rtruediv__(
72
+ self, other: float | int | SimulatedProbeResult
73
+ ) -> float | SimulatedProbeResult:
74
+ """Bypass division and just return self."""
75
+ return self
76
+
77
+ def __pow__(
78
+ self, other: float | int | SimulatedProbeResult
79
+ ) -> float | SimulatedProbeResult:
80
+ """Bypass exponent math and just return self."""
81
+ return self
82
+
83
+ def __rpow__(
84
+ self, other: float | int | SimulatedProbeResult
85
+ ) -> float | SimulatedProbeResult:
86
+ """Bypass exponent math and just return self."""
87
+ return self
88
+
89
+ def __mod__(
90
+ self, other: float | int | SimulatedProbeResult
91
+ ) -> float | SimulatedProbeResult:
92
+ """Bypass modulus and just return self."""
93
+ return self
94
+
95
+ def __rmod__(
96
+ self, other: float | int | SimulatedProbeResult
97
+ ) -> float | SimulatedProbeResult:
98
+ """Bypass modulus and just return self."""
99
+ return self
100
+
101
+ def __floordiv__(
102
+ self, other: float | int | SimulatedProbeResult
103
+ ) -> float | SimulatedProbeResult:
104
+ """Bypass floor division and just return self."""
105
+ return self
106
+
107
+ def __rfloordiv__(
108
+ self, other: float | int | SimulatedProbeResult
109
+ ) -> float | SimulatedProbeResult:
110
+ """Bypass floor division and just return self."""
111
+ return self
112
+
113
+ def __gt__(self, other: float | int | SimulatedProbeResult) -> bool:
54
114
  """Bypass 'greater than' and just return self."""
55
115
  return True
56
116
 
57
- def __lt__(self, other: float | SimulatedProbeResult) -> bool:
117
+ def __lt__(self, other: float | int | SimulatedProbeResult) -> bool:
58
118
  """Bypass 'less than' and just return self."""
59
119
  return False
60
120
 
61
- def __ge__(self, other: float | SimulatedProbeResult) -> bool:
121
+ def __ge__(self, other: float | int | SimulatedProbeResult) -> bool:
62
122
  """Bypass 'greater than or eaqual to' and just return self."""
63
123
  return True
64
124
 
65
- def __le__(self, other: float | SimulatedProbeResult) -> bool:
125
+ def __le__(self, other: float | int | SimulatedProbeResult) -> bool:
66
126
  """Bypass 'less than or equal to' and just return self."""
67
127
  return False
68
128
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: opentrons
3
- Version: 8.5.0a1
3
+ Version: 8.5.0a2
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.5.0a1
24
+ Requires-Dist: opentrons-shared-data==8.5.0a2
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.5.0a1; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.5.0a2; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.5.0a1; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.5.0a2; 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.5.0a1
1
+ opentrons-shared-data==8.5.0a2
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.5.0a1
18
+ opentrons-hardware[FLEX]==8.5.0a2
19
19
 
20
20
  [ot2-hardware]
21
- opentrons-hardware==8.5.0a1
21
+ opentrons-hardware==8.5.0a2
File without changes
File without changes
File without changes
File without changes