opentrons 8.5.0a9__tar.gz → 8.5.1__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.0a9 → opentrons-8.5.1}/PKG-INFO +4 -4
  2. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/instrument.py +13 -6
  3. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +44 -19
  4. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/instrument_context.py +10 -22
  5. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/protocol_context.py +14 -22
  6. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +17 -0
  7. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/PKG-INFO +4 -4
  8. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/requires.txt +3 -3
  9. {opentrons-8.5.0a9 → opentrons-8.5.1}/MANIFEST.in +0 -0
  10. {opentrons-8.5.0a9 → opentrons-8.5.1}/README.rst +0 -0
  11. {opentrons-8.5.0a9 → opentrons-8.5.1}/setup.cfg +0 -0
  12. {opentrons-8.5.0a9 → opentrons-8.5.1}/setup.py +0 -0
  13. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/__init__.py +0 -0
  14. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/_version.py +0 -0
  15. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/__init__.py +0 -0
  16. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
  17. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
  18. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/file_operators.py +0 -0
  19. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/helpers.py +0 -0
  20. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
  21. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
  22. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
  23. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
  24. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
  25. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
  26. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
  27. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
  28. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
  29. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
  30. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
  31. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
  32. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
  33. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
  34. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/types.py +0 -0
  35. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/__init__.py +0 -0
  36. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/__main__.py +0 -0
  37. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/analyze.py +0 -0
  38. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/__init__.py +0 -0
  39. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/advanced_settings.py +0 -0
  40. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/defaults_ot2.py +0 -0
  41. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/defaults_ot3.py +0 -0
  42. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/feature_flags.py +0 -0
  43. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/gripper_config.py +0 -0
  44. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/reset.py +0 -0
  45. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/robot_configs.py +0 -0
  46. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/types.py +0 -0
  47. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/__init__.py +0 -0
  48. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
  49. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
  50. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
  51. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
  52. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
  53. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
  54. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/__init__.py +0 -0
  55. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
  56. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
  57. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
  58. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/serial_connection.py +0 -0
  59. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/command_builder.py +0 -0
  60. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
  61. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
  62. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
  63. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
  64. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
  65. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/types.py +0 -0
  66. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
  67. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
  68. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
  69. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
  70. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
  71. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
  72. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
  73. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/driver.py +0 -0
  74. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
  75. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
  76. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
  77. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
  78. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
  79. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
  80. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
  81. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
  82. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
  83. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/serial_communication.py +0 -0
  84. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
  85. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
  86. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
  87. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
  88. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
  89. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
  90. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
  91. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
  92. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
  93. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
  94. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/driver.py +0 -0
  95. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
  96. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
  97. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
  98. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/driver.py +0 -0
  99. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
  100. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/types.py +0 -0
  101. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/utils.py +0 -0
  102. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/execute.py +0 -0
  103. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/__init__.py +0 -0
  104. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/__main__.py +0 -0
  105. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/adapters.py +0 -0
  106. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/api.py +0 -0
  107. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/__init__.py +0 -0
  108. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/controller.py +0 -0
  109. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/errors.py +0 -0
  110. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
  111. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/flex_protocol.py +0 -0
  112. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3controller.py +0 -0
  113. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3simulator.py +0 -0
  114. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
  115. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/simulator.py +0 -0
  116. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
  117. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
  118. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
  119. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/types.py +0 -0
  120. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/constants.py +0 -0
  121. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/dev_types.py +0 -0
  122. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
  123. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
  124. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/app.py +0 -0
  125. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
  126. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
  127. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
  128. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
  129. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
  130. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
  131. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
  132. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
  133. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/parser.py +0 -0
  134. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
  135. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
  136. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
  137. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
  138. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
  139. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
  140. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/settings.py +0 -0
  141. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
  142. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
  143. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
  144. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
  145. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/types.py +0 -0
  146. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/util.py +0 -0
  147. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/errors.py +0 -0
  148. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/execution_manager.py +0 -0
  149. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
  150. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
  151. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
  152. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
  153. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
  154. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
  155. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
  156. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
  157. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
  158. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
  159. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
  160. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +0 -0
  161. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/module_control.py +0 -0
  162. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/__init__.py +0 -0
  163. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
  164. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/errors.py +0 -0
  165. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
  166. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
  167. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
  168. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
  169. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
  170. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
  171. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
  172. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
  173. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
  174. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/types.py +0 -0
  175. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/update.py +0 -0
  176. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/utils.py +0 -0
  177. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/motion_utilities.py +0 -0
  178. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
  179. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
  180. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/ot3api.py +0 -0
  181. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/pause_manager.py +0 -0
  182. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/poller.py +0 -0
  183. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
  184. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
  185. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
  186. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
  187. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
  188. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
  189. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
  190. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
  191. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
  192. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
  193. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
  194. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
  195. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
  196. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/liquid_handler.py +0 -0
  197. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
  198. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
  199. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
  200. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
  201. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
  202. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/types.py +0 -0
  203. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/robot_calibration.py +0 -0
  204. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
  205. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
  206. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/repl.py +0 -0
  207. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
  208. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/simulator_setup.py +0 -0
  209. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/thread_manager.py +0 -0
  210. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
  211. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/types.py +0 -0
  212. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/util.py +0 -0
  213. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_broker.py +0 -0
  214. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/__init__.py +0 -0
  215. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/commands.py +0 -0
  216. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/helpers.py +0 -0
  217. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/module_commands.py +0 -0
  218. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
  219. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/publisher.py +0 -0
  220. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/robot_commands.py +0 -0
  221. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/types.py +0 -0
  222. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/__init__.py +0 -0
  223. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
  224. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/deck_conflict.py +0 -0
  225. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/errors.py +0 -0
  226. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/types.py +0 -0
  227. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/waypoints.py +0 -0
  228. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/ordered_set.py +0 -0
  229. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/__init__.py +0 -0
  230. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_liquid.py +0 -0
  231. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
  232. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
  233. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_parameter_context.py +0 -0
  234. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_parameters.py +0 -0
  235. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_transfer_liquid_validation.py +0 -0
  236. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_types.py +0 -0
  237. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/config.py +0 -0
  238. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/__init__.py +0 -0
  239. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/common.py +0 -0
  240. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/core_map.py +0 -0
  241. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
  242. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
  243. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
  244. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
  245. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
  246. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
  247. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
  248. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +0 -0
  249. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
  250. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/protocol.py +0 -0
  251. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
  252. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
  253. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/well.py +0 -0
  254. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/instrument.py +0 -0
  255. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/labware.py +0 -0
  256. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
  257. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
  258. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
  259. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +0 -0
  260. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
  261. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
  262. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +0 -0
  263. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -0
  264. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
  265. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
  266. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
  267. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
  268. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +0 -0
  269. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
  270. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/module.py +0 -0
  271. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/protocol.py +0 -0
  272. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/robot.py +0 -0
  273. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/well.py +0 -0
  274. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/well_grid.py +0 -0
  275. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
  276. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/deck.py +0 -0
  277. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/disposal_locations.py +0 -0
  278. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/labware.py +0 -0
  279. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/module_contexts.py +0 -0
  280. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
  281. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/robot_context.py +0 -0
  282. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/validation.py +0 -0
  283. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/__init__.py +0 -0
  284. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
  285. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
  286. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
  287. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/actions.py +0 -0
  288. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
  289. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
  290. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
  291. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/transports.py +0 -0
  292. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
  293. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
  294. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
  295. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
  296. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
  297. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
  298. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
  299. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
  300. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
  301. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +0 -0
  302. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
  303. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
  304. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
  305. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
  306. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
  307. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
  308. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
  309. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/command.py +0 -0
  310. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
  311. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/comment.py +0 -0
  312. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
  313. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
  314. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/custom.py +0 -0
  315. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
  316. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
  317. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +0 -0
  318. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
  319. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
  320. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
  321. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/close_latch.py +0 -0
  322. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
  323. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +0 -0
  324. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +0 -0
  325. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/open_latch.py +0 -0
  326. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/prepare_shuttle.py +0 -0
  327. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +0 -0
  328. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +0 -0
  329. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +0 -0
  330. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
  331. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
  332. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
  333. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
  334. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
  335. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
  336. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
  337. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
  338. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
  339. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
  340. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
  341. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
  342. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/home.py +0 -0
  343. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
  344. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
  345. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_labware.py +0 -0
  346. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
  347. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
  348. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
  349. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
  350. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
  351. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
  352. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
  353. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
  354. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
  355. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
  356. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
  357. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
  358. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
  359. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
  360. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
  361. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
  362. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
  363. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pipetting_common.py +0 -0
  364. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
  365. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pressure_dispense.py +0 -0
  366. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
  367. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
  368. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
  369. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
  370. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
  371. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
  372. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
  373. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
  374. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
  375. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
  376. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/seal_pipette_to_tip.py +0 -0
  377. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
  378. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
  379. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
  380. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
  381. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
  382. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
  383. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
  384. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
  385. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
  386. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
  387. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
  388. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
  389. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
  390. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
  391. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
  392. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
  393. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
  394. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
  395. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
  396. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
  397. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
  398. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
  399. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
  400. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
  401. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
  402. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +0 -0
  403. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
  404. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
  405. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
  406. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
  407. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/engine_support.py +0 -0
  408. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
  409. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
  410. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
  411. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
  412. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
  413. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/command_executor.py +0 -0
  414. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
  415. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
  416. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
  417. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
  418. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
  419. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
  420. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
  421. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
  422. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/movement.py +0 -0
  423. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/pipetting.py +0 -0
  424. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
  425. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
  426. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
  427. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
  428. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
  429. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
  430. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
  431. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
  432. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
  433. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/notes/notes.py +0 -0
  434. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/plugins.py +0 -0
  435. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
  436. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
  437. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
  438. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
  439. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
  440. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
  441. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
  442. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/labware_validation.py +0 -0
  443. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
  444. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
  445. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
  446. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
  447. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
  448. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/__init__.py +0 -0
  449. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
  450. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
  451. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
  452. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
  453. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/command_history.py +0 -0
  454. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/commands.py +0 -0
  455. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/config.py +0 -0
  456. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/files.py +0 -0
  457. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
  458. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/frustum_helpers.py +0 -0
  459. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/geometry.py +0 -0
  460. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/labware.py +0 -0
  461. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
  462. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/liquids.py +0 -0
  463. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
  464. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
  465. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
  466. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
  467. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
  468. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
  469. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
  470. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
  471. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/modules.py +0 -0
  472. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/motion.py +0 -0
  473. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
  474. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/state.py +0 -0
  475. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
  476. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/tips.py +0 -0
  477. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/update_types.py +0 -0
  478. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/wells.py +0 -0
  479. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/__init__.py +0 -0
  480. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
  481. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
  482. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
  483. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/execution.py +0 -0
  484. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
  485. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/instrument.py +0 -0
  486. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
  487. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware.py +0 -0
  488. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
  489. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
  490. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
  491. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid.py +0 -0
  492. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
  493. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
  494. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_level_detection.py +0 -0
  495. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/location.py +0 -0
  496. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/module.py +0 -0
  497. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
  498. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
  499. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/tip.py +0 -0
  500. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/util.py +0 -0
  501. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/well_position.py +0 -0
  502. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/__init__.py +0 -0
  503. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
  504. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
  505. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_hasher.py +0 -0
  506. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_identifier.py +0 -0
  507. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
  508. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/input_file.py +0 -0
  509. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
  510. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
  511. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_source.py +0 -0
  512. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
  513. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/__init__.py +0 -0
  514. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
  515. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
  516. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/json_translator.py +0 -0
  517. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/legacy_command_mapper.py +0 -0
  518. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
  519. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
  520. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
  521. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
  522. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/task_queue.py +0 -0
  523. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/__init__.py +0 -0
  524. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
  525. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/common.py +0 -0
  526. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/mix.py +0 -0
  527. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  528. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
  529. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
  530. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/__init__.py +0 -0
  531. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/constants.py +0 -0
  532. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/deck_type.py +0 -0
  533. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/definitions.py +0 -0
  534. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/instrument.py +0 -0
  535. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/labware_like.py +0 -0
  536. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
  537. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/types.py +0 -0
  538. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/util.py +0 -0
  539. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/bundle.py +0 -0
  540. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/__init__.py +0 -0
  541. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/errors.py +0 -0
  542. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/estimator.py +0 -0
  543. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/__init__.py +0 -0
  544. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/dev_types.py +0 -0
  545. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/errors.py +0 -0
  546. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute.py +0 -0
  547. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
  548. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
  549. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
  550. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_python.py +0 -0
  551. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
  552. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/types.py +0 -0
  553. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/__init__.py +0 -0
  554. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/labware_geometry.py +0 -0
  555. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/planning.py +0 -0
  556. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/labware.py +0 -0
  557. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/models/__init__.py +0 -0
  558. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/models/json_protocol.py +0 -0
  559. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/__init__.py +0 -0
  560. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
  561. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
  562. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/exceptions.py +0 -0
  563. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
  564. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/types.py +0 -0
  565. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/validation.py +0 -0
  566. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parse.py +0 -0
  567. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/types.py +0 -0
  568. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/py.typed +0 -0
  569. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/resources/scripts/lpc21isp +0 -0
  570. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
  571. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/simulate.py +0 -0
  572. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/__init__.py +0 -0
  573. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/camera.py +0 -0
  574. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/log_control.py +0 -0
  575. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/nmcli.py +0 -0
  576. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/resin.py +0 -0
  577. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/smoothie_update.py +0 -0
  578. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/wifi.py +0 -0
  579. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/__init__.py +0 -0
  580. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/args_handler.py +0 -0
  581. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/write_pipette_memory.py +0 -0
  582. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/types.py +0 -0
  583. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/__init__.py +0 -0
  584. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/async_helpers.py +0 -0
  585. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/broker.py +0 -0
  586. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/change_notifier.py +0 -0
  587. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/entrypoint_util.py +0 -0
  588. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/get_union_elements.py +0 -0
  589. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/helpers.py +0 -0
  590. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/linal.py +0 -0
  591. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/logging_config.py +0 -0
  592. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/logging_queue_handler.py +0 -0
  593. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/performance_helpers.py +0 -0
  594. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/SOURCES.txt +0 -0
  595. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/dependency_links.txt +0 -0
  596. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/entry_points.txt +0 -0
  597. {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/not-zip-safe +0 -0
  598. {opentrons-8.5.0a9 → opentrons-8.5.1}/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.0a9
3
+ Version: 8.5.1
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.0a9
24
+ Requires-Dist: opentrons-shared-data==8.5.1
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.0a9; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.5.1; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.5.0a9; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.5.1; extra == "flex-hardware"
41
41
 
42
42
  .. _Full API Documentation: http://docs.opentrons.com
43
43
 
@@ -30,6 +30,9 @@ from opentrons.protocols.advanced_control.transfers.common import (
30
30
  NoLiquidClassPropertyError,
31
31
  )
32
32
  from opentrons.protocols.advanced_control.transfers import common as tx_commons
33
+ from opentrons.protocols.advanced_control.transfers.transfer_liquid_utils import (
34
+ check_current_volume_before_dispensing,
35
+ )
33
36
  from opentrons.protocol_engine import commands as cmd
34
37
  from opentrons.protocol_engine import (
35
38
  DeckPoint,
@@ -1702,7 +1705,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1702
1705
  # multi-dispense in those destinations.
1703
1706
  # If the tip has a volume corresponding to a single destination, then
1704
1707
  # do a single-dispense into that destination.
1705
- for dispense_vol, dispense_dest in vol_dest_combo:
1708
+ for idx, (dispense_vol, dispense_dest) in enumerate(vol_dest_combo):
1706
1709
  if use_single_dispense:
1707
1710
  tip_contents = self.dispense_liquid_class(
1708
1711
  volume=dispense_vol,
@@ -1730,6 +1733,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
1730
1733
  trash_location=trash_location,
1731
1734
  conditioning_volume=conditioning_vol,
1732
1735
  disposal_volume=disposal_vol,
1736
+ is_last_dispense_in_tip=(idx == len(vol_dest_combo) - 1),
1733
1737
  )
1734
1738
  is_first_step = False
1735
1739
 
@@ -2143,9 +2147,12 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
2143
2147
  """Remove an air gap that was previously added during a transfer."""
2144
2148
  if last_air_gap == 0:
2145
2149
  return
2146
-
2150
+ current_vol = self.get_current_volume()
2151
+ check_current_volume_before_dispensing(
2152
+ current_volume=current_vol, dispense_volume=last_air_gap
2153
+ )
2147
2154
  correction_volume = dispense_props.correction_by_volume.get_for_volume(
2148
- self.get_current_volume() - last_air_gap
2155
+ current_vol - last_air_gap
2149
2156
  )
2150
2157
  # The minimum flow rate should be air_gap_volume per second
2151
2158
  flow_rate = max(
@@ -2280,6 +2287,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
2280
2287
  trash_location: Union[Location, TrashBin, WasteChute],
2281
2288
  conditioning_volume: float,
2282
2289
  disposal_volume: float,
2290
+ is_last_dispense_in_tip: bool,
2283
2291
  ) -> List[tx_comps_executor.LiquidAndAirGapPair]:
2284
2292
  """Execute a dispense step that's part of a multi-dispense.
2285
2293
 
@@ -2326,9 +2334,8 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
2326
2334
  components_executor.submerge(
2327
2335
  submerge_properties=dispense_props.submerge, post_submerge_action="dispense"
2328
2336
  )
2329
- tip_starting_volume = self.get_current_volume()
2330
2337
  is_last_dispense_without_disposal_vol = (
2331
- disposal_volume == 0 and tip_starting_volume == volume
2338
+ disposal_volume == 0 and is_last_dispense_in_tip
2332
2339
  )
2333
2340
  push_out_vol = (
2334
2341
  # TODO (spp): verify if it's okay to use push_out_by_volume of single dispense
@@ -2348,7 +2355,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
2348
2355
  source_well=source[1] if source else None,
2349
2356
  conditioning_volume=conditioning_volume,
2350
2357
  add_final_air_gap=add_final_air_gap,
2351
- is_last_retract=tip_starting_volume - volume == disposal_volume,
2358
+ is_last_retract=is_last_dispense_in_tip,
2352
2359
  )
2353
2360
  last_contents = components_executor.tip_state.last_liquid_and_air_gap_in_tip
2354
2361
  new_tip_contents = tip_contents[0:-1] + [last_contents]
@@ -25,6 +25,7 @@ from opentrons.protocol_engine.errors import TouchTipDisabledError
25
25
  from opentrons.types import Location, Point, Mount
26
26
  from opentrons.protocols.advanced_control.transfers.transfer_liquid_utils import (
27
27
  LocationCheckDescriptors,
28
+ check_current_volume_before_dispensing,
28
29
  )
29
30
  from opentrons.protocols.advanced_control.transfers import (
30
31
  transfer_liquid_utils as tx_utils,
@@ -253,8 +254,12 @@ class TransferComponentsExecutor:
253
254
  push_out_override: Optional[float],
254
255
  ) -> None:
255
256
  """Dispense according to dispense properties and wait if enabled."""
257
+ current_vol = self._instrument.get_current_volume()
258
+ check_current_volume_before_dispensing(
259
+ current_volume=current_vol, dispense_volume=volume
260
+ )
256
261
  correction_volume = dispense_properties.correction_by_volume.get_for_volume(
257
- self._instrument.get_current_volume() - volume
262
+ current_vol - volume
258
263
  )
259
264
  self._instrument.dispense(
260
265
  location=self._target_location,
@@ -538,6 +543,11 @@ class TransferComponentsExecutor:
538
543
  blowout_props.enabled
539
544
  and blowout_props.location == BlowoutLocation.DESTINATION
540
545
  ) or not blowout_props.enabled
546
+
547
+ if is_final_air_gap and not add_final_air_gap:
548
+ air_gap_volume = 0.0
549
+ else:
550
+ air_gap_volume = retract_props.air_gap_by_volume.get_for_volume(0)
541
551
  # Regardless of the blowout location, do touch tip and air gap
542
552
  # when leaving the dispense well. If this will be the final air gap, i.e,
543
553
  # we won't be moving to a Trash or a Source for Blowout after this air gap,
@@ -546,7 +556,7 @@ class TransferComponentsExecutor:
546
556
  touch_tip_properties=retract_props.touch_tip,
547
557
  location=retract_location,
548
558
  well=self._target_well,
549
- add_air_gap=False if is_final_air_gap and not add_final_air_gap else True,
559
+ air_gap_volume=air_gap_volume,
550
560
  )
551
561
 
552
562
  if (
@@ -594,15 +604,21 @@ class TransferComponentsExecutor:
594
604
  last_air_gap = self._tip_state.last_liquid_and_air_gap_in_tip.air_gap
595
605
  self._tip_state.delete_air_gap(last_air_gap)
596
606
  self._tip_state.ready_to_aspirate = False
607
+
608
+ air_gap_volume = (
609
+ retract_props.air_gap_by_volume.get_for_volume(0)
610
+ if add_final_air_gap
611
+ else 0.0
612
+ )
597
613
  # Do touch tip and air gap again after blowing out into source well or trash
598
614
  self._do_touch_tip_and_air_gap_after_dispense(
599
615
  touch_tip_properties=retract_props.touch_tip,
600
616
  location=touch_tip_and_air_gap_location,
601
617
  well=touch_tip_and_air_gap_well,
602
- add_air_gap=add_final_air_gap,
618
+ air_gap_volume=air_gap_volume,
603
619
  )
604
620
 
605
- def retract_during_multi_dispensing(
621
+ def retract_during_multi_dispensing( # noqa: C901
606
622
  self,
607
623
  trash_location: Union[Location, TrashBin, WasteChute],
608
624
  source_location: Optional[Location],
@@ -715,6 +731,14 @@ class TransferComponentsExecutor:
715
731
  else:
716
732
  add_air_gap = True
717
733
 
734
+ air_gap_volume = (
735
+ retract_props.air_gap_by_volume.get_for_volume(
736
+ self.tip_state.last_liquid_and_air_gap_in_tip.liquid
737
+ )
738
+ if add_air_gap
739
+ else 0.0
740
+ )
741
+
718
742
  # Regardless of the blowout location, do touch tip
719
743
  # when leaving the dispense well.
720
744
  # Add an air gap depending on conditioning volume + whether this is
@@ -724,7 +748,7 @@ class TransferComponentsExecutor:
724
748
  touch_tip_properties=retract_props.touch_tip,
725
749
  location=retract_location,
726
750
  well=self._target_well,
727
- add_air_gap=add_air_gap,
751
+ air_gap_volume=air_gap_volume,
728
752
  )
729
753
 
730
754
  if (
@@ -771,17 +795,22 @@ class TransferComponentsExecutor:
771
795
  self._tip_state.delete_last_air_gap_and_liquid()
772
796
  self._tip_state.ready_to_aspirate = False
773
797
 
798
+ if (
799
+ # Same check as before for when it's the final air gap of current retract
800
+ conditioning_volume > 0
801
+ and is_last_retract
802
+ and add_final_air_gap
803
+ ):
804
+ # The volume in tip at this point should be 0uL
805
+ air_gap_volume = retract_props.air_gap_by_volume.get_for_volume(0)
806
+ else:
807
+ air_gap_volume = 0
774
808
  # Do touch tip and air gap again after blowing out into source well or trash
775
809
  self._do_touch_tip_and_air_gap_after_dispense(
776
810
  touch_tip_properties=retract_props.touch_tip,
777
811
  location=touch_tip_and_air_gap_location,
778
812
  well=touch_tip_and_air_gap_well,
779
- add_air_gap=(
780
- # Same check as before for when it's the final air gap of current retract
781
- conditioning_volume > 0
782
- and is_last_retract
783
- and add_final_air_gap
784
- ),
813
+ air_gap_volume=air_gap_volume,
785
814
  )
786
815
 
787
816
  def _do_touch_tip_and_air_gap_after_dispense( # noqa: C901
@@ -789,7 +818,7 @@ class TransferComponentsExecutor:
789
818
  touch_tip_properties: TouchTipProperties,
790
819
  location: Union[Location, TrashBin, WasteChute],
791
820
  well: Optional[WellCore],
792
- add_air_gap: bool,
821
+ air_gap_volume: float,
793
822
  ) -> None:
794
823
  """Perform touch tip and air gap as part of post-dispense retract.
795
824
 
@@ -835,7 +864,7 @@ class TransferComponentsExecutor:
835
864
  # Full speed because the tip will already be out of the liquid
836
865
  speed=None,
837
866
  )
838
- if add_air_gap or not self._tip_state.ready_to_aspirate:
867
+ if air_gap_volume > 0 or not self._tip_state.ready_to_aspirate:
839
868
  # If we need to move the plunger up either to prepare for aspirate or to add air gap,
840
869
  # move to a safe location above the well if the retract location is not already
841
870
  # at or above this safe location
@@ -881,12 +910,8 @@ class TransferComponentsExecutor:
881
910
  if not self._tip_state.ready_to_aspirate:
882
911
  self._instrument.prepare_to_aspirate()
883
912
  self._tip_state.ready_to_aspirate = True
884
- if add_air_gap:
885
- self._add_air_gap(
886
- air_gap_volume=self._transfer_properties.aspirate.retract.air_gap_by_volume.get_for_volume(
887
- 0
888
- )
889
- )
913
+ if air_gap_volume > 0:
914
+ self._add_air_gap(air_gap_volume=air_gap_volume)
890
915
 
891
916
  def _add_air_gap(
892
917
  self,
@@ -840,10 +840,9 @@ class InstrumentContext(publisher.CommandPublisher):
840
840
  :type speed: float
841
841
  :param mm_from_edge: How far to move inside the well, as a distance from the
842
842
  well's edge.
843
- When ``mm_from_edge=0``, the pipette tip will move all the
844
- way to the edge of the target well. When ``mm_from_edge=1``,
845
- the pipette tip will move to 1 mm from the well's edge.
846
- Lower values will press the tip harder into the well's
843
+ When ``mm_from_edge=0``, the pipette will move to the target well's edge to touch the tip. When ``mm_from_edge=1``,
844
+ the pipette will move to 1 mm from the target well's edge to touch the tip.
845
+ Values lower than 0 will press the tip harder into the target well's
847
846
  walls; higher values will touch the well more lightly, or
848
847
  not at all.
849
848
  ``mm_from_edge`` and ``radius`` are mutually exclusive: to
@@ -1802,9 +1801,6 @@ class InstrumentContext(publisher.CommandPublisher):
1802
1801
  ) -> InstrumentContext:
1803
1802
  """Move a particular type of liquid from one well or group of wells to another.
1804
1803
 
1805
- ..
1806
- This is intended for Opentrons internal use only and is not a guaranteed API.
1807
-
1808
1804
  :param liquid_class: The type of liquid to move. You must specify the liquid class,
1809
1805
  even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
1810
1806
  source contains.
@@ -1829,6 +1825,7 @@ class InstrumentContext(publisher.CommandPublisher):
1829
1825
 
1830
1826
  :param trash_location: A trash container, well, or other location to dispose of
1831
1827
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
1828
+ If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
1832
1829
  :param return_tip: Whether to drop used tips in their original locations
1833
1830
  in the tip rack, instead of the trash.
1834
1831
  :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
@@ -1838,7 +1835,6 @@ class InstrumentContext(publisher.CommandPublisher):
1838
1835
  ``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
1839
1836
  ``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
1840
1837
 
1841
- :meta private:
1842
1838
  """
1843
1839
  if volume == 0.0:
1844
1840
  _log.info(
@@ -1945,16 +1941,12 @@ class InstrumentContext(publisher.CommandPublisher):
1945
1941
  """
1946
1942
  Distribute a particular type of liquid from one well to a group of wells.
1947
1943
 
1948
- ..
1949
- This is intended for Opentrons internal use only and is not a guaranteed API.
1950
-
1951
1944
  :param liquid_class: The type of liquid to move. You must specify the liquid class,
1952
1945
  even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
1953
1946
  source contains.
1954
1947
  :type liquid_class: :py:class:`.LiquidClass`
1955
1948
 
1956
- :param volume: The amount, in µL, to aspirate from the source and dispense to
1957
- each destination.
1949
+ :param volume: The amount, in µL, to dispense to each destination.
1958
1950
  :param source: A single well for the pipette to target, or a group of wells to
1959
1951
  target in a single aspirate for a multi-channel pipette.
1960
1952
  :param dest: A list of wells to dispense liquid into.
@@ -1962,13 +1954,14 @@ class InstrumentContext(publisher.CommandPublisher):
1962
1954
  Defaults to ``"once"``.
1963
1955
 
1964
1956
  - ``"once"``: Use one tip for the entire command.
1957
+ - ``"always"``: Use a new tip before each aspirate.
1965
1958
  - ``"never"``: Do not pick up or drop tips at all.
1966
- - ``"always"``: Pick up a new tip before every aspirate.
1967
1959
 
1968
1960
  See :ref:`param-tip-handling` for details.
1969
1961
 
1970
1962
  :param trash_location: A trash container, well, or other location to dispose of
1971
1963
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
1964
+ If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
1972
1965
  :param return_tip: Whether to drop used tips in their original locations
1973
1966
  in the tip rack, instead of the trash.
1974
1967
  :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
@@ -1978,7 +1971,6 @@ class InstrumentContext(publisher.CommandPublisher):
1978
1971
  ``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
1979
1972
  ``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
1980
1973
 
1981
- :meta private:
1982
1974
  """
1983
1975
  if volume == 0.0:
1984
1976
  _log.info(
@@ -2093,16 +2085,12 @@ class InstrumentContext(publisher.CommandPublisher):
2093
2085
  """
2094
2086
  Consolidate a particular type of liquid from a group of wells to one well.
2095
2087
 
2096
- ..
2097
- This is intended for Opentrons internal use only and is not a guaranteed API.
2098
-
2099
2088
  :param liquid_class: The type of liquid to move. You must specify the liquid class,
2100
2089
  even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
2101
2090
  source contains.
2102
2091
  :type liquid_class: :py:class:`.LiquidClass`
2103
2092
 
2104
- :param volume: The amount, in µL, to aspirate from the source and dispense to
2105
- each destination.
2093
+ :param volume: The amount, in µL, to aspirate from each source well.
2106
2094
  :param source: A list of wells to aspirate liquid from.
2107
2095
  :param dest: A single well, list of wells, trash bin, or waste chute to dispense liquid into.
2108
2096
  Multiple wells can only be given for multi-channel pipette configurations, and
@@ -2111,13 +2099,14 @@ class InstrumentContext(publisher.CommandPublisher):
2111
2099
  Defaults to ``"once"``.
2112
2100
 
2113
2101
  - ``"once"``: Use one tip for the entire command.
2102
+ - ``"always"``: Use a new tip after each aspirate and dispense, even when visiting the same source again.
2114
2103
  - ``"never"``: Do not pick up or drop tips at all.
2115
- - ``"always"``: Pick up a new tip before going back to source for refilling after a dispense.
2116
2104
 
2117
2105
  See :ref:`param-tip-handling` for details.
2118
2106
 
2119
2107
  :param trash_location: A trash container, well, or other location to dispose of
2120
2108
  tips. Depending on the liquid class, the pipette may also blow out liquid here.
2109
+ If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
2121
2110
  :param return_tip: Whether to drop used tips in their original locations
2122
2111
  in the tip rack, instead of the trash.
2123
2112
  :param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
@@ -2127,7 +2116,6 @@ class InstrumentContext(publisher.CommandPublisher):
2127
2116
  ``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
2128
2117
  ``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
2129
2118
 
2130
- :meta private:
2131
2119
  """
2132
2120
  if volume == 0.0:
2133
2121
  _log.info(
@@ -1377,12 +1377,17 @@ class ProtocolContext(CommandPublisher):
1377
1377
  name: str,
1378
1378
  ) -> LiquidClass:
1379
1379
  """
1380
- Get an instance of a built-in liquid class for use in the protocol.
1380
+ Get an instance of an Opentrons-verified liquid class for use in a Flex protocol.
1381
1381
 
1382
- Args:
1383
- name: Name of an Opentrons-defined liquid class.
1382
+ :param name: Name of an Opentrons-verified liquid class. Must be one of:
1383
+
1384
+ - ``"water"``: an Opentrons-verified liquid class based on deionized water.
1385
+ - ``"glycerol_50"``: an Opentrons-verified liquid class for viscous liquid. Based on 50% glycerol.
1386
+ - ``"ethanol_80"``: an Opentrons-verified liquid class for volatile liquid. Based on 80% ethanol.
1384
1387
 
1385
1388
  :raises: ``LiquidClassDefinitionDoesNotExist``: if the specified liquid class does not exist.
1389
+
1390
+ :returns: A new LiquidClass object.
1386
1391
  """
1387
1392
  return self._core.get_liquid_class(name=name, version=DEFAULT_LC_VERSION)
1388
1393
 
@@ -1394,29 +1399,16 @@ class ProtocolContext(CommandPublisher):
1394
1399
  base_liquid_class: Optional[LiquidClass] = None,
1395
1400
  display_name: Optional[str] = None,
1396
1401
  ) -> LiquidClass:
1397
- """Define a custom liquid class, either a completely new one or based on an existing one.
1398
-
1399
- Args:
1400
- name: The name to give to the new liquid class. Cannot use names of existing in-built liquid classes.
1401
- properties: A dict of transfer properties per tip per pipette.
1402
- Accepts a nested dictionary in the following format:
1403
-
1404
- .. code-block:: python
1402
+ """Define a custom liquid class, either based on an existing liquid class, or create a completely new one.
1405
1403
 
1406
- {
1407
- <pipette_name>: {
1408
- <tiprack_uri>: <properties in the shape of TransferPropertiesDict>
1404
+ :param name: The name to give to the new liquid class. Cannot use the name of an Opentrons-verified liquid class.
1405
+ :param properties: A dict of transfer properties for pipette and tip combinations to use for liquid class transfers. The nested dictionary must have top-level keys corresponding to pipette load names and second-level keys corresponding to compatible tip rack load names. Further nested key–value pairs should be as specified in ``TransferPropertiesDict``. See the `liquid class type definitions <https://github.com/Opentrons/opentrons/blob/edge/shared-data/python/opentrons_shared_data/liquid_classes/types.py>`_.
1409
1406
 
1410
- # TransferPropertiesDict is a dictionary representation of the
1411
- # transfer properties returned by the `LiquidClass.get_for(..)` function.
1412
- }}
1407
+ :param base_liquid_class: An existing liquid class object to base the newly defined liquid class on. The specified ``transfer_properties`` will override any existing properties for the specified pipette and tip combinations. All other properties will remain the same as those in the base class.
1413
1408
 
1414
- base_liquid_class: A LiquidClass to base this liquid class on. The properties
1415
- specified in transfer_properties will override any existing ones
1416
- for the specified pipettes & tips.
1417
- display_name: An optional human-readable name for the liquid. If not provided,
1418
- will default to title-cased name.
1409
+ :param display_name: An optional name for the liquid class. Defaults to the title-case ``name`` if a display name isn't provided.
1419
1410
 
1411
+ :returns: A new LiquidClass object.
1420
1412
  """
1421
1413
  if definition_exists(name, DEFAULT_LC_VERSION):
1422
1414
  raise ValueError(
@@ -212,3 +212,20 @@ def _group_wells_for_nozzle_configuration( # noqa: C901
212
212
  grouped_wells.reverse()
213
213
 
214
214
  return grouped_wells
215
+
216
+
217
+ def check_current_volume_before_dispensing(
218
+ current_volume: float,
219
+ dispense_volume: float,
220
+ ) -> None:
221
+ """Check if the current volume is valid for dispensing the dispense volume."""
222
+ if current_volume < dispense_volume:
223
+ # Although this should never happen, we can get into an unexpected state
224
+ # following error recovery and not have the expected amount of liquid in the tip.
225
+ # If this happens, we want to raise a useful error so the user can understand
226
+ # the cause of the problem. If we don't make this check for current volume,
227
+ # an unhelpful error might get raised when a '..byVolume' property encounters
228
+ # a negative volume (current_volume - dispense_volume).
229
+ raise RuntimeError(
230
+ f"Cannot dispense {dispense_volume}uL when the tip has only {current_volume}uL."
231
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: opentrons
3
- Version: 8.5.0a9
3
+ Version: 8.5.1
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.0a9
24
+ Requires-Dist: opentrons-shared-data==8.5.1
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.0a9; extra == "ot2-hardware"
38
+ Requires-Dist: opentrons-hardware==8.5.1; extra == "ot2-hardware"
39
39
  Provides-Extra: flex-hardware
40
- Requires-Dist: opentrons-hardware[FLEX]==8.5.0a9; extra == "flex-hardware"
40
+ Requires-Dist: opentrons-hardware[FLEX]==8.5.1; 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.0a9
1
+ opentrons-shared-data==8.5.1
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.0a9
18
+ opentrons-hardware[FLEX]==8.5.1
19
19
 
20
20
  [ot2-hardware]
21
- opentrons-hardware==8.5.0a9
21
+ opentrons-hardware==8.5.1
File without changes
File without changes
File without changes
File without changes