opentrons 8.8.0a6__tar.gz → 8.8.0a11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1109) hide show
  1. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/PKG-INFO +4 -4
  2. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/_version.py +2 -2
  3. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/asyncio/communication/serial_connection.py +21 -0
  4. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/ot3api.py +21 -3
  5. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/liquid_handler.py +6 -2
  6. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +4 -18
  7. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/instrument_context.py +45 -37
  8. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/labware.py +5 -2
  9. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/module_contexts.py +22 -32
  10. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/protocol_context.py +11 -13
  11. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +35 -16
  12. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/capture_image.py +47 -27
  13. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +35 -17
  14. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/pipetting_common.py +42 -3
  15. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/command_executor.py +1 -1
  16. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/pipetting.py +7 -0
  17. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/camera_provider.py +2 -2
  18. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/motion.py +16 -18
  19. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/legacy_command_mapper.py +9 -1
  20. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/asyncio/communication/test_serial_connection.py +13 -1
  21. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_deck_conflict.py +4 -9
  22. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_aspirate_while_tracking.py +29 -0
  23. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_capture_image.py +28 -1
  24. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_dispense_while_tracking.py +29 -0
  25. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_command_executor.py +2 -2
  26. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_pipetting_handler.py +90 -1
  27. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_protocol_engine.py +1 -1
  28. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_legacy_command_mapper.py +10 -0
  29. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/.flake8 +0 -0
  30. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/.gitignore +0 -0
  31. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/LICENSE +0 -0
  32. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/Pipfile +0 -0
  33. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/Pipfile.lock +0 -0
  34. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/mypy.ini +0 -0
  35. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/pyproject.toml +0 -0
  36. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/pytest.ini +0 -0
  37. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/__init__.py +0 -0
  38. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/__init__.py +0 -0
  39. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
  40. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
  41. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/file_operators.py +0 -0
  42. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/helpers.py +0 -0
  43. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
  44. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
  45. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
  46. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
  47. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
  48. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
  49. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
  50. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
  51. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
  52. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
  53. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
  54. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
  55. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
  56. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
  57. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/calibration_storage/types.py +0 -0
  58. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/cli/__init__.py +0 -0
  59. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/cli/__main__.py +0 -0
  60. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/cli/analyze.py +0 -0
  61. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/__init__.py +0 -0
  62. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/advanced_settings.py +0 -0
  63. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/defaults_ot2.py +0 -0
  64. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/defaults_ot3.py +0 -0
  65. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/feature_flags.py +0 -0
  66. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/gripper_config.py +0 -0
  67. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/reset.py +0 -0
  68. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/robot_configs.py +0 -0
  69. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/config/types.py +0 -0
  70. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/__init__.py +0 -0
  71. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
  72. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
  73. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
  74. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
  75. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
  76. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
  77. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/asyncio/__init__.py +0 -0
  78. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
  79. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
  80. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
  81. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/command_builder.py +0 -0
  82. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
  83. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
  84. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
  85. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
  86. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
  87. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/types.py +0 -0
  88. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
  89. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
  90. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
  91. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
  92. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
  93. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
  94. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
  95. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/mag_deck/driver.py +0 -0
  96. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
  97. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
  98. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
  99. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
  100. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
  101. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
  102. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
  103. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
  104. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
  105. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/serial_communication.py +0 -0
  106. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
  107. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
  108. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
  109. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
  110. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
  111. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
  112. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
  113. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
  114. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
  115. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
  116. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/temp_deck/driver.py +0 -0
  117. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
  118. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
  119. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
  120. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/thermocycler/driver.py +0 -0
  121. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
  122. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/types.py +0 -0
  123. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/utils.py +0 -0
  124. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/__init__.py +0 -0
  125. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/abstract.py +0 -0
  126. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/driver.py +0 -0
  127. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/errors.py +0 -0
  128. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/simulator.py +0 -0
  129. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/drivers/vacuum_module/types.py +0 -0
  130. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/execute.py +0 -0
  131. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/__init__.py +0 -0
  132. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/__main__.py +0 -0
  133. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/adapters.py +0 -0
  134. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/api.py +0 -0
  135. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/__init__.py +0 -0
  136. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/controller.py +0 -0
  137. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/errors.py +0 -0
  138. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
  139. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/flex_protocol.py +0 -0
  140. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/ot3controller.py +0 -0
  141. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/ot3simulator.py +0 -0
  142. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
  143. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/simulator.py +0 -0
  144. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
  145. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
  146. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
  147. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/backends/types.py +0 -0
  148. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/constants.py +0 -0
  149. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/dev_types.py +0 -0
  150. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
  151. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
  152. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/app.py +0 -0
  153. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
  154. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
  155. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
  156. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
  157. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
  158. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
  159. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
  160. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
  161. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/parser.py +0 -0
  162. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
  163. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
  164. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
  165. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
  166. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
  167. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
  168. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/settings.py +0 -0
  169. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
  170. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
  171. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
  172. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
  173. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/types.py +0 -0
  174. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/emulation/util.py +0 -0
  175. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/errors.py +0 -0
  176. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/execution_manager.py +0 -0
  177. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
  178. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
  179. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
  180. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
  181. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
  182. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
  183. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
  184. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
  185. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
  186. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
  187. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
  188. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +0 -0
  189. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/module_control.py +0 -0
  190. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/__init__.py +0 -0
  191. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
  192. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/errors.py +0 -0
  193. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
  194. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
  195. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
  196. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
  197. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
  198. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
  199. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
  200. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
  201. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
  202. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/types.py +0 -0
  203. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/update.py +0 -0
  204. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/modules/utils.py +0 -0
  205. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/motion_utilities.py +0 -0
  206. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
  207. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
  208. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/pause_manager.py +0 -0
  209. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/poller.py +0 -0
  210. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
  211. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
  212. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
  213. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
  214. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
  215. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
  216. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
  217. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
  218. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
  219. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
  220. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
  221. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
  222. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
  223. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
  224. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
  225. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
  226. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
  227. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
  228. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/protocols/types.py +0 -0
  229. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/robot_calibration.py +0 -0
  230. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/README.md +0 -0
  231. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
  232. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
  233. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/ot3gripper +0 -0
  234. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/ot3repl +0 -0
  235. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/repl.py +0 -0
  236. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
  237. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/scripts/update_module_fw.py +0 -0
  238. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/simulator_setup.py +0 -0
  239. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/thread_manager.py +0 -0
  240. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
  241. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/types.py +0 -0
  242. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/hardware_control/util.py +0 -0
  243. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_broker.py +0 -0
  244. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/__init__.py +0 -0
  245. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/commands.py +0 -0
  246. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/helpers.py +0 -0
  247. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/module_commands.py +0 -0
  248. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
  249. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/publisher.py +0 -0
  250. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/robot_commands.py +0 -0
  251. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/legacy_commands/types.py +0 -0
  252. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/__init__.py +0 -0
  253. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
  254. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/deck_conflict.py +0 -0
  255. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/errors.py +0 -0
  256. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/types.py +0 -0
  257. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/motion_planning/waypoints.py +0 -0
  258. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/ordered_set.py +0 -0
  259. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/__init__.py +0 -0
  260. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_liquid.py +0 -0
  261. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
  262. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
  263. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_parameter_context.py +0 -0
  264. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_parameters.py +0 -0
  265. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_transfer_liquid_validation.py +0 -0
  266. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/_types.py +0 -0
  267. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/config.py +0 -0
  268. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/__init__.py +0 -0
  269. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/common.py +0 -0
  270. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/core_map.py +0 -0
  271. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
  272. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/_default_labware_versions.py +0 -0
  273. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/_default_liquid_class_versions.py +0 -0
  274. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
  275. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
  276. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/instrument.py +0 -0
  277. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
  278. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
  279. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
  280. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
  281. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
  282. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/protocol.py +0 -0
  283. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
  284. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
  285. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/tasks.py +0 -0
  286. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +0 -0
  287. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/engine/well.py +0 -0
  288. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/instrument.py +0 -0
  289. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/labware.py +0 -0
  290. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
  291. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/_labware_geometry.py +0 -0
  292. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
  293. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
  294. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +0 -0
  295. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
  296. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
  297. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +0 -0
  298. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -0
  299. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
  300. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
  301. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/tasks.py +0 -0
  302. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
  303. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
  304. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +0 -0
  305. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
  306. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/legacy_simulator/tasks.py +0 -0
  307. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/module.py +0 -0
  308. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/protocol.py +0 -0
  309. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/robot.py +0 -0
  310. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/tasks.py +0 -0
  311. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/well.py +0 -0
  312. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/core/well_grid.py +0 -0
  313. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
  314. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/deck.py +0 -0
  315. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/disposal_locations.py +0 -0
  316. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
  317. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/robot_context.py +0 -0
  318. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/tasks.py +0 -0
  319. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_api/validation.py +0 -0
  320. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/__init__.py +0 -0
  321. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
  322. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
  323. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
  324. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/actions/actions.py +0 -0
  325. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
  326. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
  327. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
  328. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/clients/transports.py +0 -0
  329. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
  330. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
  331. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
  332. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/common.py +0 -0
  333. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
  334. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
  335. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
  336. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
  337. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
  338. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
  339. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
  340. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
  341. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
  342. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
  343. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
  344. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
  345. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
  346. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/command.py +0 -0
  347. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
  348. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/comment.py +0 -0
  349. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
  350. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
  351. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/create_timer.py +0 -0
  352. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/custom.py +0 -0
  353. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
  354. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
  355. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
  356. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
  357. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
  358. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
  359. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +0 -0
  360. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +0 -0
  361. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +0 -0
  362. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +0 -0
  363. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +0 -0
  364. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
  365. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
  366. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
  367. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
  368. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
  369. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
  370. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/common.py +0 -0
  371. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
  372. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
  373. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
  374. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
  375. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/set_shake_speed.py +0 -0
  376. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
  377. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
  378. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/home.py +0 -0
  379. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/identify_module.py +0 -0
  380. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
  381. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
  382. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_labware.py +0 -0
  383. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
  384. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
  385. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
  386. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
  387. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
  388. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
  389. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
  390. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
  391. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
  392. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
  393. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
  394. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
  395. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
  396. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
  397. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
  398. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
  399. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
  400. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
  401. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/pressure_dispense.py +0 -0
  402. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
  403. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
  404. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
  405. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
  406. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
  407. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
  408. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
  409. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
  410. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
  411. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
  412. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/seal_pipette_to_tip.py +0 -0
  413. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
  414. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
  415. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/set_tip_state.py +0 -0
  416. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
  417. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
  418. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
  419. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
  420. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
  421. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
  422. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
  423. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
  424. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
  425. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
  426. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
  427. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
  428. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
  429. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/start_run_extended_profile.py +0 -0
  430. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
  431. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
  432. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
  433. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
  434. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
  435. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
  436. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
  437. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
  438. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_stacker_close_latch.py +0 -0
  439. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_stacker_manual_retrieve.py +0 -0
  440. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_stacker_open_latch.py +0 -0
  441. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_stacker_prepare_shuttle.py +0 -0
  442. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
  443. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
  444. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +0 -0
  445. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
  446. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
  447. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
  448. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/commands/wait_for_tasks.py +0 -0
  449. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
  450. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/engine_support.py +0 -0
  451. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
  452. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
  453. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
  454. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
  455. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
  456. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
  457. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
  458. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
  459. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
  460. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
  461. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
  462. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
  463. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
  464. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/movement.py +0 -0
  465. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
  466. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
  467. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
  468. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
  469. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/task_handler.py +0 -0
  470. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
  471. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
  472. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
  473. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
  474. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
  475. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/notes/notes.py +0 -0
  476. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/plugins.py +0 -0
  477. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
  478. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
  479. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/concurrency_provider.py +0 -0
  480. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
  481. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
  482. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
  483. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
  484. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
  485. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/labware_validation.py +0 -0
  486. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
  487. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
  488. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
  489. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
  490. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
  491. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/__init__.py +0 -0
  492. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
  493. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/_axis_aligned_bounding_box.py +0 -0
  494. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
  495. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
  496. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
  497. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/camera.py +0 -0
  498. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/command_history.py +0 -0
  499. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/commands.py +0 -0
  500. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/config.py +0 -0
  501. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/files.py +0 -0
  502. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
  503. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/geometry.py +0 -0
  504. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/inner_well_math_utils.py +0 -0
  505. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/labware.py +0 -0
  506. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/labware_origin_math/errors.py +0 -0
  507. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/labware_origin_math/stackup_origin_to_labware_origin.py +0 -0
  508. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
  509. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/liquids.py +0 -0
  510. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
  511. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
  512. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
  513. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
  514. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
  515. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
  516. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
  517. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
  518. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/modules.py +0 -0
  519. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
  520. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/preconditions.py +0 -0
  521. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/state.py +0 -0
  522. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
  523. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/tasks.py +0 -0
  524. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/tips.py +0 -0
  525. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/update_types.py +0 -0
  526. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/state/wells.py +0 -0
  527. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/__init__.py +0 -0
  528. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
  529. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
  530. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/command_preconditions.py +0 -0
  531. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
  532. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/execution.py +0 -0
  533. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
  534. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/instrument.py +0 -0
  535. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
  536. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/labware.py +0 -0
  537. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
  538. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
  539. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
  540. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/liquid.py +0 -0
  541. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
  542. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
  543. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/liquid_level_detection.py +0 -0
  544. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/location.py +0 -0
  545. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/module.py +0 -0
  546. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
  547. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
  548. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/tasks.py +0 -0
  549. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/tip.py +0 -0
  550. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/util.py +0 -0
  551. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_engine/types/well_position.py +0 -0
  552. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/__init__.py +0 -0
  553. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
  554. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
  555. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/file_hasher.py +0 -0
  556. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/file_identifier.py +0 -0
  557. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
  558. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/input_file.py +0 -0
  559. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
  560. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
  561. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/protocol_source.py +0 -0
  562. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
  563. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/__init__.py +0 -0
  564. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
  565. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
  566. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/json_translator.py +0 -0
  567. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
  568. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
  569. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
  570. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
  571. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocol_runner/task_queue.py +0 -0
  572. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/__init__.py +0 -0
  573. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
  574. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/common.py +0 -0
  575. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/mix.py +0 -0
  576. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  577. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
  578. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
  579. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +0 -0
  580. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/__init__.py +0 -0
  581. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/constants.py +0 -0
  582. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/deck_type.py +0 -0
  583. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/definitions.py +0 -0
  584. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/instrument.py +0 -0
  585. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/labware_like.py +0 -0
  586. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
  587. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/types.py +0 -0
  588. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/api_support/util.py +0 -0
  589. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/bundle.py +0 -0
  590. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/duration/__init__.py +0 -0
  591. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/duration/errors.py +0 -0
  592. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/duration/estimator.py +0 -0
  593. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/__init__.py +0 -0
  594. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/dev_types.py +0 -0
  595. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/errors.py +0 -0
  596. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/execute.py +0 -0
  597. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
  598. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
  599. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
  600. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/execute_python.py +0 -0
  601. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
  602. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/execution/types.py +0 -0
  603. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/geometry/__init__.py +0 -0
  604. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/geometry/planning.py +0 -0
  605. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/labware.py +0 -0
  606. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/models/__init__.py +0 -0
  607. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/models/json_protocol.py +0 -0
  608. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/__init__.py +0 -0
  609. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
  610. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
  611. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/exceptions.py +0 -0
  612. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
  613. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/types.py +0 -0
  614. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parameters/validation.py +0 -0
  615. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/parse.py +0 -0
  616. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/protocols/types.py +0 -0
  617. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/py.typed +0 -0
  618. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/resources/scripts/lpc21isp +0 -0
  619. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
  620. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/simulate.py +0 -0
  621. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/__init__.py +0 -0
  622. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/camera.py +0 -0
  623. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/ffmpeg.py +0 -0
  624. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/log_control.py +0 -0
  625. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/nmcli.py +0 -0
  626. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/resin.py +0 -0
  627. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/smoothie_update.py +0 -0
  628. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/system/wifi.py +0 -0
  629. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/tools/__init__.py +0 -0
  630. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/tools/args_handler.py +0 -0
  631. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/tools/write_pipette_memory.py +0 -0
  632. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/types.py +0 -0
  633. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/__init__.py +0 -0
  634. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/async_helpers.py +0 -0
  635. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/broker.py +0 -0
  636. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/change_notifier.py +0 -0
  637. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/entrypoint_util.py +0 -0
  638. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/get_union_elements.py +0 -0
  639. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/helpers.py +0 -0
  640. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/linal.py +0 -0
  641. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/logging_config.py +0 -0
  642. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/logging_queue_handler.py +0 -0
  643. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/src/opentrons/util/performance_helpers.py +0 -0
  644. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/__init__.py +0 -0
  645. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/__init__.py +0 -0
  646. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/__init__.py +0 -0
  647. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_deck_attitude.py +0 -0
  648. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_deck_configuration.py +0 -0
  649. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_file_operators.py +0 -0
  650. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_gripper_offset.py +0 -0
  651. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_helpers.py +0 -0
  652. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_pipette_offset_ot2.py +0 -0
  653. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_pipette_offset_ot3.py +0 -0
  654. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_schema_validation.py +0 -0
  655. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/calibration_storage/test_tip_length_ot2.py +0 -0
  656. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/cli/test_cli.py +0 -0
  657. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/__init__.py +0 -0
  658. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/ot2_settings.py +0 -0
  659. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/ot3_settings.py +0 -0
  660. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_advanced_settings.py +0 -0
  661. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_advanced_settings_migration.py +0 -0
  662. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_defaults_ot2.py +0 -0
  663. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_defaults_ot3.py +0 -0
  664. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_gripper_config.py +0 -0
  665. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_reset.py +0 -0
  666. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/config/test_robots_config.py +0 -0
  667. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/conftest.py +0 -0
  668. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/__init__.py +0 -0
  669. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/bug_aspirate_tip.py +0 -0
  670. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/mad_mag_v2.py +0 -0
  671. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/ot2_drop_tip.py +0 -0
  672. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/python_v2_custom_lw.py +0 -0
  673. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur-gen2-v2.py +0 -0
  674. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur.py +0 -0
  675. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur_v2.py +0 -0
  676. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur_v2_14.py +0 -0
  677. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur_v3.py +0 -0
  678. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/data/testosaur_with_rtp.py +0 -0
  679. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/__init__.py +0 -0
  680. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/absorbance_reader/__init__.py +0 -0
  681. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/absorbance_reader/test_driver.py +0 -0
  682. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/asyncio/__init__.py +0 -0
  683. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/asyncio/communication/__init__.py +0 -0
  684. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/asyncio/communication/test_async_serial.py +0 -0
  685. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/flex_stacker/__init__.py +0 -0
  686. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/flex_stacker/conftest.py +0 -0
  687. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/flex_stacker/test_driver.py +0 -0
  688. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/heater_shaker/__init__.py +0 -0
  689. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/heater_shaker/test_driver.py +0 -0
  690. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/mag_deck/__init__.py +0 -0
  691. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/mag_deck/test_driver.py +0 -0
  692. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/rpi_drivers/__init__.py +0 -0
  693. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/rpi_drivers/test_usb.py +0 -0
  694. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
  695. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/test_connection.py +0 -0
  696. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/test_driver.py +0 -0
  697. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/test_parse_utils.py +0 -0
  698. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/v3_0_0/__init__.py +0 -0
  699. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/smoothie_drivers/v3_0_0/test_driver_position_cache.py +0 -0
  700. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/temp_deck/__init__.py +0 -0
  701. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/temp_deck/test_driver.py +0 -0
  702. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/test_command_builder.py +0 -0
  703. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/test_utils.py +0 -0
  704. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/thermocycler/__init__.py +0 -0
  705. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/thermocycler/test_driver.py +0 -0
  706. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/thermocycler/test_gen2_driver.py +0 -0
  707. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/vacuum_module/__init__.py +0 -0
  708. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/drivers/vacuum_module/test_driver.py +0 -0
  709. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/__init__.py +0 -0
  710. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_controller.py +0 -0
  711. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_estop_state.py +0 -0
  712. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_status_bar.py +0 -0
  713. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_subsystem_manager.py +0 -0
  714. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_tip_presence_manager.py +0 -0
  715. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/backends/test_ot3_utils.py +0 -0
  716. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/conftest.py +0 -0
  717. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/emulation/__init__.py +0 -0
  718. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
  719. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/emulation/module_server/test_helpers.py +0 -0
  720. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/emulation/test_parser.py +0 -0
  721. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/emulation/test_proxy.py +0 -0
  722. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/instruments/test_instrument_calibration.py +0 -0
  723. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/instruments/test_nozzle_manager.py +0 -0
  724. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/__init__.py +0 -0
  725. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/build_module.py +0 -0
  726. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/conftest.py +0 -0
  727. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_controller.py +0 -0
  728. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_heatershaker.py +0 -0
  729. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_magdeck.py +0 -0
  730. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_smoothie.py +0 -0
  731. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_tempdeck.py +0 -0
  732. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/integration/test_thermocycler.py +0 -0
  733. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/__init__.py +0 -0
  734. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_hc_flexstacker.py +0 -0
  735. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_hc_heatershaker.py +0 -0
  736. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_hc_magdeck.py +0 -0
  737. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_hc_tempdeck.py +0 -0
  738. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_hc_thermocycler.py +0 -0
  739. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_lid_temp_status.py +0 -0
  740. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/modules/test_plate_temp_status.py +0 -0
  741. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_adapters.py +0 -0
  742. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_api_helpers.py +0 -0
  743. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_calibration_functions.py +0 -0
  744. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_execution_manager.py +0 -0
  745. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_gpio.py +0 -0
  746. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_gripper.py +0 -0
  747. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_importability.py +0 -0
  748. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_instruments.py +0 -0
  749. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_module_control.py +0 -0
  750. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_modules.py +0 -0
  751. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_moves.py +0 -0
  752. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_ot3_api.py +0 -0
  753. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_ot3_calibration.py +0 -0
  754. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_ot3_transforms.py +0 -0
  755. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_pause_manager.py +0 -0
  756. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_pipette.py +0 -0
  757. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_pipette_handler.py +0 -0
  758. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_poller.py +0 -0
  759. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_simulator_setup.py +0 -0
  760. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_thread_manager.py +0 -0
  761. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_types.py +0 -0
  762. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/hardware_control/test_util.py +0 -0
  763. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/legacy_commands/__init__.py +0 -0
  764. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/legacy_commands/test_protocol_commands.py +0 -0
  765. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/legacy_commands/test_publisher.py +0 -0
  766. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/motion_planning/__init__.py +0 -0
  767. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/motion_planning/test_adjacent_slots_getters.py +0 -0
  768. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/motion_planning/test_deck_conflict.py +0 -0
  769. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/motion_planning/test_waypoints.py +0 -0
  770. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/__init__.py +0 -0
  771. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/__init__.py +0 -0
  772. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/__init__.py +0 -0
  773. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_absorbance_reader_core.py +0 -0
  774. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_default_labware_versions.py +0 -0
  775. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_flex_stacker_core.py +0 -0
  776. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_heater_shaker_core.py +0 -0
  777. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_instrument_core.py +0 -0
  778. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_labware_core.py +0 -0
  779. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_load_labware_params.py +0 -0
  780. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_magnetic_module_core.py +0 -0
  781. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_module_core.py +0 -0
  782. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_overlap_versions.py +0 -0
  783. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_point_calculations.py +0 -0
  784. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_protocol_core.py +0 -0
  785. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_stringify.py +0 -0
  786. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_tasks.py +0 -0
  787. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_temperature_module_core.py +0 -0
  788. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_thermocycler_core.py +0 -0
  789. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_transfer_components_executor.py +0 -0
  790. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/engine/test_well_core.py +0 -0
  791. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_base_module_core.py +0 -0
  792. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_deck.py +0 -0
  793. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_heater_shaker_core.py +0 -0
  794. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_labware_offset_provider.py +0 -0
  795. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_magnetic_module_core.py +0 -0
  796. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_module_geometry.py +0 -0
  797. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_protocol_context_implementation.py +0 -0
  798. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_temperature_module_core.py +0 -0
  799. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/legacy/test_thermocycler_core.py +0 -0
  800. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/test_core_map.py +0 -0
  801. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/core/test_well_grid.py +0 -0
  802. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/partial_tip_configurations.py +0 -0
  803. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_absorbance_reader_context.py +0 -0
  804. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_deck.py +0 -0
  805. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_flex_stacker_context.py +0 -0
  806. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_heater_shaker_context.py +0 -0
  807. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_instrument_context.py +0 -0
  808. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_labware.py +0 -0
  809. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_lc_blowout_properties.py +0 -0
  810. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_lc_delay_properties.py +0 -0
  811. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_lc_mix_properties.py +0 -0
  812. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_lc_touch_tip_properties.py +0 -0
  813. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_liquid_class.py +0 -0
  814. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_liquid_class_properties.py +0 -0
  815. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_magnetic_module_context.py +0 -0
  816. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_module_context.py +0 -0
  817. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_parameter_context.py +0 -0
  818. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_protocol_context.py +0 -0
  819. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_robot_context.py +0 -0
  820. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_temperature_module_context.py +0 -0
  821. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_thermocycler_context.py +0 -0
  822. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_validation.py +0 -0
  823. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api/test_well.py +0 -0
  824. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/__init__.py +0 -0
  825. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/conftest.py +0 -0
  826. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/test_liquid_classes.py +0 -0
  827. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/test_modules.py +0 -0
  828. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/test_pipette_movement_deck_conflicts.py +0 -0
  829. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/test_transfer_with_liquid_classes.py +0 -0
  830. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_integration/test_trashes.py +0 -0
  831. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/__init__.py +0 -0
  832. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/__init__.py +0 -0
  833. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/protocol_api/__init__.py +0 -0
  834. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/protocol_api/test_instrument_context.py +0 -0
  835. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/protocol_api/test_well_implementation.py +0 -0
  836. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/simulator/__init__.py +0 -0
  837. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/simulator/conftest.py +0 -0
  838. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/simulator/test_instrument_context.py +0 -0
  839. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/core/simulator/test_protocol_context.py +0 -0
  840. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_accessor_fn.py +0 -0
  841. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_instrument.py +0 -0
  842. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_labware.py +0 -0
  843. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_labware_load.py +0 -0
  844. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_module_context.py +0 -0
  845. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_module_validation_and_errors.py +0 -0
  846. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_api_old/test_offsets.py +0 -0
  847. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/__init__.py +0 -0
  848. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/actions/test_action_dispatcher.py +0 -0
  849. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/clients/test_child_thread_transport.py +0 -0
  850. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/clients/test_sync_client.py +0 -0
  851. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/__init__.py +0 -0
  852. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
  853. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/absorbance_reader/test_close_lid.py +0 -0
  854. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/absorbance_reader/test_initialize.py +0 -0
  855. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/absorbance_reader/test_open_lid.py +0 -0
  856. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/absorbance_reader/test_read.py +0 -0
  857. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
  858. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/calibration/test_calibrate_gripper.py +0 -0
  859. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/calibration/test_calibrate_module.py +0 -0
  860. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/calibration/test_calibrate_pipette.py +0 -0
  861. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/calibration/test_move_to_maintenance_position.py +0 -0
  862. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/conftest.py +0 -0
  863. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
  864. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/conftest.py +0 -0
  865. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_common.py +0 -0
  866. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_empty.py +0 -0
  867. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_fill.py +0 -0
  868. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_retrieve.py +0 -0
  869. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_set_stored_labware.py +0 -0
  870. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_store.py +0 -0
  871. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_unsafe_stacker_close_latch.py +0 -0
  872. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_unsafe_stacker_open_latch.py +0 -0
  873. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/flex_stacker/test_unsafe_stacker_prepare_shuttle.py +0 -0
  874. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
  875. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_close_labware_latch.py +0 -0
  876. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_deactivate_heater.py +0 -0
  877. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_deactivate_shaker.py +0 -0
  878. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_open_labware_latch.py +0 -0
  879. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_set_and_wait_for_shake_speed.py +0 -0
  880. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_set_shake_speed.py +0 -0
  881. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_set_target_temperature.py +0 -0
  882. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/heater_shaker/test_wait_for_temperature.py +0 -0
  883. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
  884. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/magnetic_module/test_disengage.py +0 -0
  885. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/magnetic_module/test_engage.py +0 -0
  886. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
  887. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/test_close_gripper_jaw.py +0 -0
  888. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/test_move_axes_relative_to.py +0 -0
  889. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/test_move_axes_to.py +0 -0
  890. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/test_move_to.py +0 -0
  891. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/robot/test_open_gripper_jaw.py +0 -0
  892. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
  893. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/temperature_module/test_deactivate.py +0 -0
  894. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/temperature_module/test_set_target_temperature.py +0 -0
  895. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/temperature_module/test_wait_for_temperature.py +0 -0
  896. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_air_gap_in_place.py +0 -0
  897. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_aspirate.py +0 -0
  898. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_aspirate_in_place.py +0 -0
  899. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_blow_out.py +0 -0
  900. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_blow_out_in_place.py +0 -0
  901. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_command_schema_snapshot.py +0 -0
  902. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_command_unions.py +0 -0
  903. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_comment.py +0 -0
  904. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_configure_for_volume.py +0 -0
  905. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_configure_nozzle_layout.py +0 -0
  906. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_create_timer.py +0 -0
  907. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_dispense.py +0 -0
  908. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_dispense_in_place.py +0 -0
  909. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_drop_tip.py +0 -0
  910. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_drop_tip_in_place.py +0 -0
  911. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_get_next_tip.py +0 -0
  912. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_get_tip_presence.py +0 -0
  913. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_hash_command_params.py +0 -0
  914. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_home.py +0 -0
  915. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_liquid_probe.py +0 -0
  916. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_labware.py +0 -0
  917. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_lid.py +0 -0
  918. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_lid_stack.py +0 -0
  919. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_liquid.py +0 -0
  920. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_liquid_class.py +0 -0
  921. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_module.py +0 -0
  922. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_load_pipette.py +0 -0
  923. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_labware.py +0 -0
  924. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_relative.py +0 -0
  925. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_to_addressable_area.py +0 -0
  926. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_to_addressable_area_for_drop_tip.py +0 -0
  927. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_to_coordinates.py +0 -0
  928. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_move_to_well.py +0 -0
  929. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_pick_up_tip.py +0 -0
  930. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_prepare_to_aspirate.py +0 -0
  931. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_pressure_dispense.py +0 -0
  932. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_reload_labware.py +0 -0
  933. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_retract_axis.py +0 -0
  934. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_save_position.py +0 -0
  935. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_seal_pipette_to_tip.py +0 -0
  936. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_set_rail_lights.py +0 -0
  937. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_set_status_bar.py +0 -0
  938. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_set_tip_state.py +0 -0
  939. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_touch_tip.py +0 -0
  940. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_unseal_pipette_from_tip.py +0 -0
  941. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_verify_tip_presence.py +0 -0
  942. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_wait_for_duration.py +0 -0
  943. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_wait_for_resume.py +0 -0
  944. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/test_wait_for_tasks.py +0 -0
  945. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
  946. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_close_lid.py +0 -0
  947. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_deactivate_block.py +0 -0
  948. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_deactivate_lid.py +0 -0
  949. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_open_lid.py +0 -0
  950. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_run_extended_profile.py +0 -0
  951. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_run_profile.py +0 -0
  952. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_set_target_block_temperature.py +0 -0
  953. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_set_target_lid_temperature.py +0 -0
  954. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_start_run_extended_profile.py +0 -0
  955. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_wait_for_block_temperature.py +0 -0
  956. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/thermocycler/test_wait_for_lid_temperature.py +0 -0
  957. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_engage_axes.py +0 -0
  958. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_ungrip_labware.py +0 -0
  959. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_blow_out_in_place.py +0 -0
  960. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_drop_tip_in_place.py +0 -0
  961. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_unsafe_manual_retrieve.py +0 -0
  962. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/commands/unsafe/test_update_position_estimators.py +0 -0
  963. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/conftest.py +0 -0
  964. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/errors/test_error_occurrence.py +0 -0
  965. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/__init__.py +0 -0
  966. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_door_watcher.py +0 -0
  967. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_equipment_handler.py +0 -0
  968. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_gantry_mover.py +0 -0
  969. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_hardware_stopper.py +0 -0
  970. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_heater_shaker_movement_flagger.py +0 -0
  971. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_labware_movement_handler.py +0 -0
  972. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_movement_handler.py +0 -0
  973. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_queue_worker.py +0 -0
  974. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_rail_lights_handler.py +0 -0
  975. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_run_control_handler.py +0 -0
  976. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_status_bar_handler.py +0 -0
  977. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_task_handler.py +0 -0
  978. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_thermocycler_movement_flagger.py +0 -0
  979. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_thermocycler_plate_lifter.py +0 -0
  980. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/execution/test_tip_handler.py +0 -0
  981. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/mock_circular_frusta.py +0 -0
  982. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/mock_rectangular_frusta.py +0 -0
  983. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/note_utils.py +0 -0
  984. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/pipette_fixtures.py +0 -0
  985. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/__init__.py +0 -0
  986. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_concurrency_provider.py +0 -0
  987. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_deck_configuration_provider.py +0 -0
  988. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_deck_data_provider.py +0 -0
  989. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_labware_data_provider.py +0 -0
  990. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_labware_validation.py +0 -0
  991. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_model_utils.py +0 -0
  992. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_ot3_validation.py +0 -0
  993. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/resources/test_pipette_data_provider.py +0 -0
  994. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/__init__.py +0 -0
  995. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/command_fixtures.py +0 -0
  996. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/conftest.py +0 -0
  997. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/inner_geometry_test_params.py +0 -0
  998. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_addressable_area_state.py +0 -0
  999. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_addressable_area_store_old.py +0 -0
  1000. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_addressable_area_view_old.py +0 -0
  1001. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_axis_aligned_bounding_box.py +0 -0
  1002. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_command_history.py +0 -0
  1003. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_command_state.py +0 -0
  1004. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_command_store_old.py +0 -0
  1005. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_command_view_old.py +0 -0
  1006. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_flex_stacker_state.py +0 -0
  1007. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_fluid_stack.py +0 -0
  1008. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_geometry_view.py +0 -0
  1009. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_labware_origin_math.py +0 -0
  1010. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_labware_state.py +0 -0
  1011. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_labware_store_old.py +0 -0
  1012. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_labware_view_old.py +0 -0
  1013. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_liquid_class_store_old.py +0 -0
  1014. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_liquid_class_view_old.py +0 -0
  1015. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_liquid_store_old.py +0 -0
  1016. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_liquid_view_old.py +0 -0
  1017. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_module_store_old.py +0 -0
  1018. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_module_view_old.py +0 -0
  1019. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_motion_view.py +0 -0
  1020. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_move_types.py +0 -0
  1021. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_pipette_state.py +0 -0
  1022. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_pipette_store_old.py +0 -0
  1023. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_pipette_view_old.py +0 -0
  1024. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_state_store.py +0 -0
  1025. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_task_state.py +0 -0
  1026. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_tip_state.py +0 -0
  1027. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_update_types.py +0 -0
  1028. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_well_math.py +0 -0
  1029. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_well_store_old.py +0 -0
  1030. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/state/test_well_view_old.py +0 -0
  1031. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_create_protocol_engine.py +0 -0
  1032. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_labware_offset_standardization.py +0 -0
  1033. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_plugins.py +0 -0
  1034. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_slot_standardization.py +0 -0
  1035. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_engine/test_types.py +0 -0
  1036. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/__init__.py +0 -0
  1037. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/_input_file.py +0 -0
  1038. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_extract_labware_definitions.py +0 -0
  1039. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_file_format_validator.py +0 -0
  1040. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_file_hasher.py +0 -0
  1041. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_file_identifier.py +0 -0
  1042. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_file_reader_writer.py +0 -0
  1043. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_protocol_reader.py +0 -0
  1044. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_reader/test_role_analyzer.py +0 -0
  1045. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/__init__.py +0 -0
  1046. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/smoke_tests/conftest.py +0 -0
  1047. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/smoke_tests/test_legacy_command_mapper.py +0 -0
  1048. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/smoke_tests/test_legacy_custom_labware.py +0 -0
  1049. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/smoke_tests/test_legacy_module_commands.py +0 -0
  1050. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/smoke_tests/test_protocol_runner.py +0 -0
  1051. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_json_translator.py +0 -0
  1052. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_legacy_context_plugin.py +0 -0
  1053. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_protocol_runner.py +0 -0
  1054. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_run_orchestrator.py +0 -0
  1055. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocol_runner/test_task_queue.py +0 -0
  1056. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/__init__.py +0 -0
  1057. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/__init__.py +0 -0
  1058. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
  1059. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/transfers/labware_well_fixtures.py +0 -0
  1060. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/transfers/test_common_functions.py +0 -0
  1061. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/transfers/test_transfer_liquid_utils.py +0 -0
  1062. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/advanced_control/transfers/test_transfers.py +0 -0
  1063. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/api_support/__init__.py +0 -0
  1064. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/api_support/test_instrument.py +0 -0
  1065. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/api_support/test_labware_like.py +0 -0
  1066. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/api_support/test_tip_tracker.py +0 -0
  1067. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/api_support/test_util.py +0 -0
  1068. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/duration/__init__.py +0 -0
  1069. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/duration/test_estimator.py +0 -0
  1070. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/execution/__init__.py +0 -0
  1071. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/execution/test_execute_json_v3.py +0 -0
  1072. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/execution/test_execute_json_v4.py +0 -0
  1073. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/execution/test_execute_json_v5.py +0 -0
  1074. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/execution/test_execute_python.py +0 -0
  1075. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/fixtures/bundled_protocols/missing_labware_bundle/protocol.py +0 -0
  1076. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/fixtures/bundled_protocols/simple_bundle/custom_labware.json +0 -0
  1077. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/fixtures/bundled_protocols/simple_bundle/data.txt +0 -0
  1078. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/fixtures/bundled_protocols/simple_bundle/protocol.py +0 -0
  1079. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/geometry/__init__.py +0 -0
  1080. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/geometry/test_geometry.py +0 -0
  1081. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/geometry/test_inner_well_math_utils.py +0 -0
  1082. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/geometry/test_planning.py +0 -0
  1083. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/models/__init__.py +0 -0
  1084. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/models/test_json_protocol.py +0 -0
  1085. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/parameters/__init__.py +0 -0
  1086. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/parameters/test_csv_parameter_definition.py +0 -0
  1087. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/parameters/test_csv_parameter_interface.py +0 -0
  1088. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/parameters/test_parameter_definition.py +0 -0
  1089. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/parameters/test_validation.py +0 -0
  1090. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/test_bundle.py +0 -0
  1091. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/protocols/test_parse.py +0 -0
  1092. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/system/__init__.py +0 -0
  1093. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/system/test_nmcli.py +0 -0
  1094. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/system/test_wifi.py +0 -0
  1095. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_execute.py +0 -0
  1096. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_init.py +0 -0
  1097. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_legacy_broker.py +0 -0
  1098. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_ordered_set.py +0 -0
  1099. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_simulate.py +0 -0
  1100. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/test_types.py +0 -0
  1101. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/tools/test_pipette_memory.py +0 -0
  1102. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/__init__.py +0 -0
  1103. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_async_helpers.py +0 -0
  1104. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_broker.py +0 -0
  1105. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_change_notifier.py +0 -0
  1106. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_entrypoint_util.py +0 -0
  1107. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_get_union_elements.py +0 -0
  1108. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_linal.py +0 -0
  1109. {opentrons-8.8.0a6 → opentrons-8.8.0a11}/tests/opentrons/util/test_performance_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opentrons
3
- Version: 8.8.0a6
3
+ Version: 8.8.0a11
4
4
  Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
5
5
  Project-URL: opentrons.com, https://www.opentrons.com
6
6
  Project-URL: Source Code On Github, https://github.com/Opentrons/opentrons/tree/edge/api
@@ -24,7 +24,7 @@ Requires-Dist: click<9,>=8.0.0
24
24
  Requires-Dist: importlib-metadata>=1.0; python_version < '3.8'
25
25
  Requires-Dist: jsonschema<4.18.0,>=3.0.1
26
26
  Requires-Dist: numpy<2,>=1.20.0
27
- Requires-Dist: opentrons-shared-data==8.8.0a6
27
+ Requires-Dist: opentrons-shared-data==8.8.0a11
28
28
  Requires-Dist: packaging>=21.0
29
29
  Requires-Dist: pydantic-settings<3,>=2
30
30
  Requires-Dist: pydantic<3,>=2.0.0
@@ -32,6 +32,6 @@ Requires-Dist: pyserial>=3.5
32
32
  Requires-Dist: pyusb==1.2.1
33
33
  Requires-Dist: typing-extensions<5,>=4.0.0
34
34
  Provides-Extra: flex-hardware
35
- Requires-Dist: opentrons-hardware[flex]==8.8.0a6; extra == 'flex-hardware'
35
+ Requires-Dist: opentrons-hardware[flex]==8.8.0a11; extra == 'flex-hardware'
36
36
  Provides-Extra: ot2-hardware
37
- Requires-Dist: opentrons-hardware==8.8.0a6; extra == 'ot2-hardware'
37
+ Requires-Dist: opentrons-hardware==8.8.0a11; extra == 'ot2-hardware'
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '8.8.0a6'
32
- __version_tuple__ = version_tuple = (8, 8, 0, 'a6')
31
+ __version__ = version = '8.8.0a11'
32
+ __version_tuple__ = version_tuple = (8, 8, 0, 'a11')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -12,6 +12,8 @@ from .errors import (
12
12
  ErrorResponse,
13
13
  BaseErrorCode,
14
14
  DefaultErrorCodes,
15
+ UnhandledGcode,
16
+ GCodeCacheFull,
15
17
  )
16
18
  from .async_serial import AsyncSerial
17
19
 
@@ -555,6 +557,23 @@ class AsyncResponseSerialConnection(SerialConnection):
555
557
  # A read timeout, end
556
558
  yield "empty-unknown", data
557
559
 
560
+ def _raise_on_parser_error(self, data: str, response: bytes) -> None:
561
+ """Raise an exception if this response contains an error from the gcode parser on the module.
562
+
563
+ This has to be treated specially because multiack commands won't get multiple acks if the command
564
+ fails at the parse stage. The errors handled here should be kept in sync with the module gcode
565
+ parse code.
566
+ """
567
+ try:
568
+ str_response = self.process_raw_response(
569
+ command=data, response=response.replace(self._ack, b"").decode()
570
+ )
571
+ self.raise_on_error(response=str_response, request=data)
572
+ except (UnhandledGcode, GCodeCacheFull):
573
+ raise
574
+ except Exception:
575
+ pass
576
+
558
577
  async def _send_one_retry(self, data: str, acks: int) -> list[str]:
559
578
  data_encode = data.encode("utf-8")
560
579
  log.debug(f"{self._name}: Write -> {data_encode!r}")
@@ -567,8 +586,10 @@ class AsyncResponseSerialConnection(SerialConnection):
567
586
  async for response_type, response in self._consume_responses(acks):
568
587
  if response_type == "error":
569
588
  async_errors.append(response)
589
+ self._raise_on_parser_error(data, response)
570
590
  elif response_type == "response":
571
591
  command_acks.append(response)
592
+ self._raise_on_parser_error(data, response)
572
593
  else:
573
594
  break
574
595
 
@@ -52,6 +52,7 @@ from opentrons_shared_data.errors.exceptions import (
52
52
  InvalidActuator,
53
53
  FirmwareUpdateFailedError,
54
54
  PipetteLiquidNotFoundError,
55
+ PipetteOverpressureError,
55
56
  )
56
57
 
57
58
  from .util import use_or_initialize_loop, check_motion_bounds
@@ -3088,6 +3089,7 @@ class OT3API(
3088
3089
  volume: float,
3089
3090
  rate: float = 1.0,
3090
3091
  movement_delay: Optional[float] = None,
3092
+ end_critical_point: Optional[CriticalPoint] = None,
3091
3093
  ) -> None:
3092
3094
  """
3093
3095
  Aspirate a volume of liquid (in microliters/uL) while moving the z axis synchronously.
@@ -3107,7 +3109,7 @@ class OT3API(
3107
3109
  end_position = target_position_from_absolute(
3108
3110
  realmount,
3109
3111
  end_point,
3110
- self.critical_point_for,
3112
+ partial(self.critical_point_for, cp_override=end_critical_point),
3111
3113
  top_types.Point(*self._config.left_mount_offset),
3112
3114
  top_types.Point(*self._config.right_mount_offset),
3113
3115
  top_types.Point(*self._config.gripper_mount_offset),
@@ -3122,6 +3124,9 @@ class OT3API(
3122
3124
  delay: Optional[Tuple[List[Axis], float]] = None
3123
3125
  if movement_delay is not None:
3124
3126
  delay = ([Axis.X, Axis.Y, Axis.Z_L, Axis.Z_R], movement_delay)
3127
+ self._log.info(
3128
+ f"aspirate_while_tracking: end at {end_point} {end_critical_point}, machine pos {end_position}, with plunger {target_pos}, delay {delay}"
3129
+ )
3125
3130
  try:
3126
3131
  await self._backend.set_active_current(
3127
3132
  {aspirate_spec.axis: aspirate_spec.current}
@@ -3136,6 +3141,11 @@ class OT3API(
3136
3141
  home_flagged_axes=False,
3137
3142
  delay=delay,
3138
3143
  )
3144
+ except PipetteOverpressureError:
3145
+ self._log.exception("Aspirate failed with overpressure")
3146
+ # refresh positions during an over pressure here so we know where the gantry stopped.
3147
+ await self.refresh_positions()
3148
+ raise
3139
3149
  except Exception:
3140
3150
  self._log.exception("Aspirate failed")
3141
3151
  aspirate_spec.instr.set_current_volume(0)
@@ -3152,6 +3162,7 @@ class OT3API(
3152
3162
  rate: float = 1.0,
3153
3163
  is_full_dispense: bool = False,
3154
3164
  movement_delay: Optional[float] = None,
3165
+ end_critical_point: Optional[CriticalPoint] = None,
3155
3166
  ) -> None:
3156
3167
  """
3157
3168
  Dispense a volume of liquid (in microliters/uL) while moving the z axis synchronously.
@@ -3171,7 +3182,7 @@ class OT3API(
3171
3182
  end_position = target_position_from_absolute(
3172
3183
  realmount,
3173
3184
  end_point,
3174
- self.critical_point_for,
3185
+ partial(self.critical_point_for, cp_override=end_critical_point),
3175
3186
  top_types.Point(*self._config.left_mount_offset),
3176
3187
  top_types.Point(*self._config.right_mount_offset),
3177
3188
  top_types.Point(*self._config.gripper_mount_offset),
@@ -3186,7 +3197,9 @@ class OT3API(
3186
3197
  delay: Optional[Tuple[List[Axis], float]] = None
3187
3198
  if movement_delay is not None:
3188
3199
  delay = ([Axis.X, Axis.Y, Axis.Z_L, Axis.Z_R], movement_delay)
3189
-
3200
+ self._log.info(
3201
+ f"dispense_while_tracking: end at {end_point} {end_critical_point}, machine pos {end_position}, with plunger {target_pos}, delay {delay}"
3202
+ )
3190
3203
  try:
3191
3204
  await self._backend.set_active_current(
3192
3205
  {dispense_spec.axis: dispense_spec.current}
@@ -3201,6 +3214,11 @@ class OT3API(
3201
3214
  home_flagged_axes=False,
3202
3215
  delay=delay,
3203
3216
  )
3217
+ except PipetteOverpressureError:
3218
+ self._log.exception("Aspirate failed with overpressure")
3219
+ # refresh positions during an over pressure here so we know where the gantry stopped.
3220
+ await self.refresh_positions()
3221
+ raise
3204
3222
  except Exception:
3205
3223
  self._log.exception("dispense failed")
3206
3224
  dispense_spec.instr.set_current_volume(0)
@@ -129,15 +129,17 @@ class LiquidHandler(
129
129
  volume: float,
130
130
  flow_rate: float = 1.0,
131
131
  movement_delay: Optional[float] = None,
132
+ end_critical_point: Optional[CriticalPoint] = None,
132
133
  ) -> None:
133
134
  """
134
135
  Aspirate a volume of liquid (in microliters/uL) while moving the z axis synchronously.
135
136
 
136
137
  :param mount: A robot mount that the instrument is on.
137
- :param z_distance: The distance the z axis will move during apsiration.
138
+ :param end_point: The deck coordinate point to move the tip to during the aspirate.
138
139
  :param volume: The volume of liquid to be aspirated.
139
140
  :param flow_rate: The flow rate to aspirate with.
140
141
  :param movement_delay: Time to wait after the pipette starts aspirating before x/y/z movement.
142
+ :param end_critical_point: The critical point for the end_point position.
141
143
  """
142
144
  ...
143
145
 
@@ -172,15 +174,17 @@ class LiquidHandler(
172
174
  flow_rate: float = 1.0,
173
175
  is_full_dispense: bool = False,
174
176
  movement_delay: Optional[float] = None,
177
+ end_critical_point: Optional[CriticalPoint] = None,
175
178
  ) -> None:
176
179
  """
177
180
  Dispense a volume of liquid (in microliters/uL) while moving the z axis synchronously.
178
181
 
179
182
  :param mount: A robot mount that the instrument is on.
180
- :param z_distance: The distance the z axis will move during dispensing.
183
+ :param end_point: The deck coordinate point to move the tip to during the dispense.
181
184
  :param volume: The volume of liquid to be dispensed.
182
185
  :param flow_rate: The flow rate to dispense with.
183
186
  :param movement_delay: Time to wait after the pipette starts dispensing before x/y/z movement.
187
+ :param end_critical_point: The critical point for the end_point position.
184
188
  """
185
189
  ...
186
190
 
@@ -1,8 +1,8 @@
1
1
  """A Protocol-Engine-friendly wrapper for opentrons.motion_planning.deck_conflict."""
2
+
2
3
  from __future__ import annotations
3
4
  import logging
4
5
  from typing import (
5
- Optional,
6
6
  Tuple,
7
7
  Union,
8
8
  List,
@@ -12,7 +12,6 @@ from opentrons_shared_data.errors.exceptions import MotionPlanningFailureError
12
12
  from opentrons.protocol_engine.errors import LocationIsStagingSlotError
13
13
  from opentrons_shared_data.module import FLEX_TC_LID_COLLISION_ZONE
14
14
 
15
- from opentrons.hardware_control import CriticalPoint
16
15
  from opentrons.motion_planning import adjacent_slots_getters
17
16
 
18
17
  from opentrons.protocol_engine import (
@@ -101,7 +100,9 @@ def check_safe_for_pipette_movement( # noqa: C901
101
100
  )
102
101
  primary_nozzle = engine_state.pipettes.get_primary_nozzle(pipette_id)
103
102
 
104
- destination_cp = _get_critical_point_to_use(engine_state, labware_id)
103
+ destination_cp = engine_state.motion.get_critical_point_for_wells_in_labware(
104
+ labware_id
105
+ )
105
106
  pipette_bounds_at_well_location = (
106
107
  engine_state.pipettes.get_pipette_bounds_at_specified_move_to_position(
107
108
  pipette_id=pipette_id,
@@ -189,21 +190,6 @@ def check_safe_for_pipette_movement( # noqa: C901
189
190
  )
190
191
 
191
192
 
192
- def _get_critical_point_to_use(
193
- engine_state: StateView, labware_id: str
194
- ) -> Optional[CriticalPoint]:
195
- """Return the critical point to use when accessing the given labware."""
196
- # TODO (spp, 2024-09-17): looks like Y_CENTER of column is the same as its XY_CENTER.
197
- # I'm using this if-else ladder to be consistent with what we do in
198
- # `MotionPlanning.get_movement_waypoints_to_well()`.
199
- # We should probably use only XY_CENTER in both places.
200
- if engine_state.labware.get_should_center_column_on_target_well(labware_id):
201
- return CriticalPoint.Y_CENTER
202
- elif engine_state.labware.get_should_center_pipette_on_target_well(labware_id):
203
- return CriticalPoint.XY_CENTER
204
- return None
205
-
206
-
207
193
  def _slot_has_potential_colliding_object(
208
194
  engine_state: StateView,
209
195
  pipette_bounds: Tuple[Point, Point, Point, Point],
@@ -242,14 +242,14 @@ class InstrumentContext(publisher.CommandPublisher):
242
242
  :param flow_rate: The absolute flow rate in µL/s. If ``flow_rate`` is specified,
243
243
  ``rate`` must not be set.
244
244
  :type flow_rate: float
245
- :param end_location: Tells the robot to move between location and end_location
246
- while aspirating liquid. When this argument is used the location and
247
- end_location must both be :py:class:`.Location`.
245
+ :param end_location: Tells the robot to move from the specified ``location`` to the specified ``end_location``
246
+ while aspirating liquid. When this argument is used, the ``location`` and
247
+ ``end_location`` must both be a :py:class:`.Location`.
248
248
  :type end_location: :py:class:`.Location`
249
- :param movement_delay: Delay the x/y/z movement during a dynamic aspirate.
250
- This option is only valid when using end_location. When this argument
251
- is used, the x/y/z movement will wait movement_delay seconds after the pipette
252
- starts to aspirate before moving. This may help when dispensing very viscous liquids
249
+ :param movement_delay: Time in seconds to delay after the pipette starts aspirating and before it begins moving from ``location`` to ``end_location``.
250
+ This option is only valid when using ``end_location``. When this argument
251
+ is used, the pipette will wait the specified time after the pipette
252
+ starts to aspirate before moving. This may help when aspirating very viscous liquids
253
253
  that need to build up some pressure before liquid starts to flow.
254
254
  :type movement_delay: float
255
255
  :returns: This instance.
@@ -263,6 +263,8 @@ class InstrumentContext(publisher.CommandPublisher):
263
263
 
264
264
  .. versionchanged:: 2.24
265
265
  Added the ``flow_rate`` parameter.
266
+ .. versionchanged:: 2.27
267
+ Added the ``end_location`` and ``movement_delay`` parameters.
266
268
  """
267
269
  if flow_rate is not None:
268
270
  if self.api_version < APIVersion(2, 24):
@@ -479,13 +481,13 @@ class InstrumentContext(publisher.CommandPublisher):
479
481
  ``rate`` must not be set.
480
482
  :type flow_rate: float
481
483
 
482
- :param end_location: Tells the robot to move between location and end_location
483
- while dispensing liquid held in the pipette. When this argument is used
484
- the location and end_location must both be a :py:class:`.Location`.
484
+ :param end_location: Tells the robot to move from the specified ``location`` to the specified ``end_location``
485
+ while dispensing liquid held in the pipette. When this argument is used,
486
+ the ``location`` and ``end_location`` must both be a :py:class:`.Location`.
485
487
  :type end_location: :py:class:`.Location`
486
- :param movement_delay: Delay the x/y/z movement during a dynamic dispense.
487
- This option is only valid when using end_location. When this argument
488
- is used, the x/y/z movement will wait movement_delay seconds after the pipette
488
+ :param movement_delay: Time in seconds to delay after the pipette starts dispensing and before it begins moving from ``location`` to ``end_location``.
489
+ This option is only valid when using ``end_location``. When this argument
490
+ is used, the pipette will wait the specified time after the pipette
489
491
  starts to dispense before moving. This may help when dispensing very viscous liquids
490
492
  that need to build up some pressure before liquid starts to flow.
491
493
  :type movement_delay: float
@@ -510,6 +512,9 @@ class InstrumentContext(publisher.CommandPublisher):
510
512
  .. versionchanged:: 2.24
511
513
  ``location`` is no longer required if the pipette just moved to, dispensed, or blew out
512
514
  into a trash bin or waste chute.
515
+
516
+ .. versionchanged:: 2.27
517
+ Added the ``end_location`` and ``movement_delay`` parameters.
513
518
  """
514
519
  if self.api_version < APIVersion(2, 15) and push_out:
515
520
  raise APIVersionError(
@@ -849,7 +854,7 @@ class InstrumentContext(publisher.CommandPublisher):
849
854
  """
850
855
  Mix a volume of liquid by repeatedly aspirating and dispensing it in a multiple locations.
851
856
 
852
- See :ref:`dynamic_mix` for examples.
857
+ See :ref:`dynamic-mix` for examples.
853
858
 
854
859
  :param repetitions: Number of times to mix (default is 1).
855
860
  :param volume: The volume to mix, measured in µL. If unspecified, defaults
@@ -860,13 +865,13 @@ class InstrumentContext(publisher.CommandPublisher):
860
865
  it will behave the same as a volume of ``None``/unspecified: mix
861
866
  the full working volume of the pipette. On API levels at or above 2.16,
862
867
  no liquid will be mixed.
863
- :param aspirate_start_location: The :py:class:`~.types.Location` where the pipette will aspirate from.
864
- :param aspirate_end_location: The :py:class:`~.types.Location` If this argument is supplied
865
- the pipette will move between aspirate_start_location and aspirate_end_location
868
+ :param aspirate_start_location: The :py:class:`~.types.Location` where the pipette will start aspirating from.
869
+ :param aspirate_end_location: A :py:class:`~.types.Location`. If specified,
870
+ the pipette will move between the ``aspirate_start_location`` and the ``aspirate_end_location``
866
871
  while performing the aspirate.
867
- :param dispense_start_location: The :py:class:`~.types.Location` where the pipette will dispense to.
868
- :param dispense_end_location: The :py:class:`~.types.Location` If this argument is supplied
869
- the pipette will move between dispense_start_location and dispense_end_location
872
+ :param dispense_start_location: The :py:class:`~.types.Location` where the pipette will start dispensing to.
873
+ :param dispense_end_location: A :py:class:`~.types.Location`. If specified,
874
+ the pipette will move between the ``dispense_start_location`` and the ``dispense_end_location``
870
875
  while performing the dispense.
871
876
  :param rate: How quickly the pipette aspirates and dispenses liquid while
872
877
  mixing. The aspiration flow rate is calculated as ``rate``
@@ -884,10 +889,10 @@ class InstrumentContext(publisher.CommandPublisher):
884
889
  pipette will not push out after earlier repetitions. If
885
890
  not specified or ``None``, the pipette will push out the
886
891
  default non-zero amount. See :ref:`push-out-dispense`.
887
- :param movement_delay: Delay the x/y/z movement during a dynamic mix.
888
- This option is only valid when using aspirate_end_location or dispense_end_location.
889
- When this argument is used, the x/y/z movement will wait movement_delay seconds
890
- after the pipette starts to aspirate/dispense before moving. This may help when mixing
892
+ :param movement_delay: Time in seconds to delay after the pipette starts aspirating or dispensing and before it begins moving from the ``aspirate_start_location`` or ``dispense_start_location`` to the ``aspirate_end_location`` or ``dispense_end_location``.
893
+ This option is only valid when using ``aspirate_end_location`` or ``dispense_end_location``.
894
+ When this argument is used, the pipette will wait the specified time
895
+ after the pipette starts to aspirate or dispense before moving. This may help when mixing
891
896
  very viscous liquids that need to build up some pressure before liquid starts to flow.
892
897
  :type movement_delay: float
893
898
  :raises: ``UnexpectedTipRemovalError`` -- If no tip is attached to the pipette.
@@ -895,10 +900,7 @@ class InstrumentContext(publisher.CommandPublisher):
895
900
 
896
901
  .. note::
897
902
 
898
- All the arguments of ``mix`` are optional. However, if you omit one of them,
899
- all subsequent arguments must be passed as keyword arguments. For instance,
900
- ``pipette.mix(1, location=wellplate['A1'])`` is a valid call, but
901
- ``pipette.mix(1, wellplate['A1'])`` is not.
903
+ The ``aspirate_start_location`` and ``dispense_start_location`` arguments of ``dynamic_mix`` are required.
902
904
 
903
905
  """
904
906
  _log.debug(
@@ -2267,9 +2269,11 @@ class InstrumentContext(publisher.CommandPublisher):
2267
2269
  trash_location=transfer_args.trash_location,
2268
2270
  return_tip=return_tip,
2269
2271
  keep_last_tip=verified_keep_last_tip,
2270
- tips=[tip._core for tip in transfer_args.tips]
2271
- if transfer_args.tips is not None
2272
- else None,
2272
+ tips=(
2273
+ [tip._core for tip in transfer_args.tips]
2274
+ if transfer_args.tips is not None
2275
+ else None
2276
+ ),
2273
2277
  )
2274
2278
 
2275
2279
  return self
@@ -2441,9 +2445,11 @@ class InstrumentContext(publisher.CommandPublisher):
2441
2445
  trash_location=transfer_args.trash_location,
2442
2446
  return_tip=return_tip,
2443
2447
  keep_last_tip=verified_keep_last_tip,
2444
- tips=[tip._core for tip in transfer_args.tips]
2445
- if transfer_args.tips is not None
2446
- else None,
2448
+ tips=(
2449
+ [tip._core for tip in transfer_args.tips]
2450
+ if transfer_args.tips is not None
2451
+ else None
2452
+ ),
2447
2453
  )
2448
2454
 
2449
2455
  return self
@@ -2615,9 +2621,11 @@ class InstrumentContext(publisher.CommandPublisher):
2615
2621
  trash_location=transfer_args.trash_location,
2616
2622
  return_tip=return_tip,
2617
2623
  keep_last_tip=verified_keep_last_tip,
2618
- tips=[tip._core for tip in transfer_args.tips]
2619
- if transfer_args.tips is not None
2620
- else None,
2624
+ tips=(
2625
+ [tip._core for tip in transfer_args.tips]
2626
+ if transfer_args.tips is not None
2627
+ else None
2628
+ ),
2621
2629
  )
2622
2630
 
2623
2631
  return self
@@ -822,8 +822,8 @@ class Labware:
822
822
  def set_offset(self, x: float, y: float, z: float) -> None:
823
823
  """Set the labware's position offset.
824
824
 
825
- The offset is an x, y, z vector in deck coordinates
826
- (see :ref:`protocol-api-deck-coords`).
825
+ An offset of `(x=0, y=0, z=0)` means the labware's uncalibrated position before
826
+ any offset from Labware Position Check is applied.
827
827
 
828
828
  How the motion system applies the offset depends on the API level of the protocol.
829
829
 
@@ -882,6 +882,9 @@ class Labware:
882
882
  def calibrated_offset(self) -> Point:
883
883
  """The front-left-bottom corner of the labware, including its labware offset.
884
884
 
885
+ The offset is an x, y, z vector in deck coordinates
886
+ (see :ref:`protocol-api-deck-coords`).
887
+
885
888
  When running a protocol in the Opentrons App or on the touchscreen, Labware
886
889
  Position Check sets the labware offset.
887
890
  """
@@ -456,13 +456,14 @@ class TemperatureModuleContext(ModuleContext):
456
456
  @publish(command=cmds.tempdeck_set_temp)
457
457
  @requires_version(2, 3)
458
458
  def start_set_temperature(self, celsius: float) -> Task:
459
- """Set the target temperature without waiting for the target to be hit.
459
+ """Sets the Temperature Module's target temperature and returns immediately without waiting for the module to reach the target. Allows the protocol to proceed while the Temperature Module heats.
460
460
 
461
461
  .. versionchanged:: 2.27
462
- Returns a task object that represents concurrent preheating.
463
- Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the preheat to complete.
462
+ Returns a :py:class:`Task` object that represents concurrent heating.
463
+ Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the module to finish heating.
464
+
465
+ In API version 2.26 or below, this function returns ``None``.
464
466
 
465
- On version 2.26 or below, this function returns ``None``.
466
467
  :param celsius: A value between 4 and 95, representing the target temperature in °C.
467
468
  """
468
469
  task = self._core.set_target_temperature(celsius)
@@ -715,9 +716,9 @@ class ThermocyclerContext(ModuleContext):
715
716
  ramp_rate: Optional[float] = None,
716
717
  block_max_volume: Optional[float] = None,
717
718
  ) -> Task:
718
- """Starts to set the target temperature for the well block, in °C.
719
+ """Sets the target temperature for the Thermocycler Module's well block, in °C.
719
720
 
720
- Returns a task object that represents concurrent preheating.
721
+ Returns a :py:class:`Task` object that represents concurrent heating.
721
722
  Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for
722
723
  the preheat to complete.
723
724
 
@@ -726,10 +727,10 @@ class ThermocyclerContext(ModuleContext):
726
727
  :param block_max_volume: The greatest volume of liquid contained in any
727
728
  individual well of the loaded labware, in µL.
728
729
  If not specified, the default is 25 µL.
729
- After API version 2.27 it will attempt to use
730
- the liquid tracking of the labware first and
731
- then fall back to the 25 if there is no probed
732
- or loaded liquid.
730
+ In API version 2.27 and newer, the API will first attempt to use
731
+ the liquid tracking in labware,
732
+ then default to 25 µL if the protocol lacks probed
733
+ or loaded liquid information.
733
734
  """
734
735
 
735
736
  if block_max_volume is None:
@@ -746,10 +747,6 @@ class ThermocyclerContext(ModuleContext):
746
747
  def set_lid_temperature(self, temperature: float) -> None:
747
748
  """Set the target temperature for the heated lid, in °C.
748
749
 
749
- Returns a task object that represents concurrent preheating.
750
- Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for
751
- the preheat to complete.
752
-
753
750
  :param temperature: A value between 37 and 110, representing the target
754
751
  temperature in °C.
755
752
 
@@ -765,20 +762,14 @@ class ThermocyclerContext(ModuleContext):
765
762
  @publish(command=cmds.thermocycler_start_set_lid_temperature)
766
763
  @requires_version(2, 27)
767
764
  def start_set_lid_temperature(self, temperature: float) -> Task:
768
- """Set the target temperature for the heated lid, in °C.
765
+ """Sets a target temperature to heat the Thermocycler Module's lid, in °C. Returns a :py:class:`Task` object that represents concurrent heating.
769
766
 
770
- Returns a task object that represents concurrent preheating.
771
767
  Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for
772
- the preheat to complete.
768
+ the lid to reach the target temperature.
773
769
 
774
770
  :param temperature: A value between 37 and 110, representing the target
775
771
  temperature in °C.
776
772
 
777
- .. note::
778
-
779
- The Thermocycler will proceed to the next command immediately after
780
- ``temperature`` is reached.
781
-
782
773
  """
783
774
  task = self._core.start_set_target_lid_temperature(celsius=temperature)
784
775
  return Task(api_version=self._api_version, core=task)
@@ -824,11 +815,10 @@ class ThermocyclerContext(ModuleContext):
824
815
  repetitions: int,
825
816
  block_max_volume: Optional[float] = None,
826
817
  ) -> Task:
827
- """Start a Thermocycler profile and return a :py:class:`Task` representing its execution.
818
+ """Starts a defined Thermocycler Module profile and return a :py:class:`Task` representing its concurrent execution.
828
819
  Profile is defined as a cycle of ``steps``, for a given number of ``repetitions``.
829
820
 
830
- Returns a task object that represents concurrent execution of the profile.
831
- Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the preheat to complete.
821
+ Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the profile run to complete.
832
822
 
833
823
  :param steps: List of steps that make up a single cycle.
834
824
  Each list item should be a dictionary that maps to the parameters
@@ -1104,17 +1094,17 @@ class HeaterShakerContext(ModuleContext):
1104
1094
  """Set target temperature and return immediately.
1105
1095
 
1106
1096
  Sets the Heater-Shaker's target temperature and returns immediately without
1107
- waiting for the target to be reached. Does not delay the protocol until
1108
- target temperature has reached.
1097
+ waiting for the target to be reached. Allows the protocol to proceed while the module
1098
+ reaches the target temperature.
1109
1099
  Use :py:meth:`~.HeaterShakerContext.wait_for_temperature` to delay
1110
- protocol execution for api levels below 2.27.
1100
+ protocol execution for API levels below 2.27.
1111
1101
 
1112
1102
  .. versionchanged:: 2.25
1113
1103
  Removed the minimum temperature limit of 37 °C. Note that temperatures under ambient are
1114
1104
  not achievable.
1115
1105
  .. versionchanged:: 2.27
1116
- Returns a task object that represents concurrent preheating.
1117
- Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the preheat to complete.
1106
+ Returns a :py:class:`Task` object that represents concurrent heating.
1107
+ Pass the task object to :py:meth:`ProtocolContext.wait_for_tasks` to wait for the module to reach the target temperature.
1118
1108
 
1119
1109
  :param celsius: A value under 95, representing the target temperature in °C.
1120
1110
  Values are automatically truncated to two decimal places,
@@ -1158,11 +1148,11 @@ class HeaterShakerContext(ModuleContext):
1158
1148
  @requires_version(2, 27)
1159
1149
  @publish(command=cmds.heater_shaker_set_shake_speed)
1160
1150
  def set_shake_speed(self, rpm: int) -> Task:
1161
- """Set a shake speed in rpm to run in the background.
1151
+ """Sets the Heater-Shaker's shake speed in RPM and returns a :py:class:`Task` that represents concurrent shaking.
1162
1152
 
1163
1153
  .. note::
1164
1154
 
1165
- Before shaking, this command will retract the pipettes upward if they are parked adjacent to the Heater-Shaker.
1155
+ Before shaking, this command retracts pipettes upward if they are adjacent to the Heater-Shaker Module.
1166
1156
 
1167
1157
  :param rpm: A value between 200 and 3000, representing the target shake speed in revolutions per minute.
1168
1158
  """
@@ -1289,7 +1289,7 @@ class ProtocolContext(CommandPublisher):
1289
1289
  def wait_for_tasks(self, tasks: list[Task]) -> None:
1290
1290
  """Wait for a list of tasks to complete before executing subsequent commands.
1291
1291
 
1292
- :param list Task: tasks: A list of Task objects to wait for.
1292
+ :param list Task: tasks: A list of :py:class:`Task` objects to wait for.
1293
1293
 
1294
1294
  Task objects can be commands that are allowed to run concurrently.
1295
1295
  """
@@ -1299,7 +1299,7 @@ class ProtocolContext(CommandPublisher):
1299
1299
  @publish(command=cmds.create_timer)
1300
1300
  @requires_version(2, 27)
1301
1301
  def create_timer(self, seconds: float) -> Task:
1302
- """Create a timer task that runs in the background.
1302
+ """Create a timer :py:class:`Task` that runs in the background.
1303
1303
 
1304
1304
  :param float seconds: The time to delay in seconds.
1305
1305
 
@@ -1833,17 +1833,15 @@ class ProtocolContext(CommandPublisher):
1833
1833
  brightness: Optional[float] = None,
1834
1834
  saturation: Optional[float] = None,
1835
1835
  ) -> None:
1836
- """Capture an image using the camera. Captured images get saved as a result of the protocol run.
1837
-
1838
- :param home_before: Boolean to home the pipette before capturing an image.
1839
- :param filename: Filename to use when saving the captured image as a file.
1840
- :param resolution: Width/height tuple to determine the resolution to use when capturing an image.
1841
- :param zoom: Optional zoom level, with minimum/default of 1x zoom and maximum of 2x zoom.
1842
- :param contrast: Contrast level to be applied to an image, range is 0% to 100%.
1843
- :param brightness: Brightness level to be applied to an image, range is 0% to 100%.
1844
- :param saturation: Saturation level to be applied to an image, range is 0% to 100%.
1845
-
1846
- .. versionadded:: 2.27
1836
+ """Capture an image using the camera. Captured images are saved as during the protocol run.
1837
+
1838
+ :param home_before: If ``True``, homes the pipette before capturing an image.
1839
+ :param filename: Custom name to use when saving the captured image as a file. The custom name is added as the beginning of the filename, followed by the robot and protocol name, a timestamp for the protocol run, the step number, and a timestamp for the command running when the image was captured.
1840
+ :param resolution: Accepts a width and height (as a tuple) to determine the camera's resolution when capturing the image.
1841
+ :param zoom: Zoom level the camera will use. Defaults to the minimum of 1x zoom (``1.0``) and has a maximum of 2x zoom (``2.0``).
1842
+ :param contrast: The contrast level to be applied to the image. The acceptable range is from 0 to 100; provided as a percentage (``0.0`` to ``100.0``).
1843
+ :param brightness: The brightness level to be applied to the image. The acceptable range is from 0 to 100; provided as a percentage (``0.0`` to ``100.0``).
1844
+ :param saturation: The saturation level to be applied to the image. The acceptable range is from 0 to 100; provided as a percentage (``0.0`` to ``100.0``).
1847
1845
 
1848
1846
  """
1849
1847
  if home_before is True: