opentrons 8.5.0a9__tar.gz → 8.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of opentrons might be problematic. Click here for more details.
- {opentrons-8.5.0a9 → opentrons-8.5.1}/PKG-INFO +4 -4
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/instrument.py +13 -6
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +44 -19
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/instrument_context.py +10 -22
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/protocol_context.py +14 -22
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +17 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/PKG-INFO +4 -4
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/requires.txt +3 -3
- {opentrons-8.5.0a9 → opentrons-8.5.1}/MANIFEST.in +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/README.rst +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/setup.cfg +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/setup.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/_version.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/file_operators.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/__main__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/cli/analyze.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/advanced_settings.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/defaults_ot2.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/defaults_ot3.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/feature_flags.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/gripper_config.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/reset.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/robot_configs.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/config/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/serial_connection.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/command_builder.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/serial_communication.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/driver.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/execute.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/__main__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/adapters.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/api.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/controller.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/flex_protocol.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3controller.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/simulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/backends/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/constants.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/dev_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/app.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/parser.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/settings.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/emulation/util.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/execution_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/module_control.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/update.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/modules/utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/motion_utilities.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/ot3api.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/pause_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/poller.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/liquid_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/protocols/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/robot_calibration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/repl.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/simulator_setup.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/thread_manager.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/hardware_control/util.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_broker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/commands.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/module_commands.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/publisher.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/robot_commands.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/legacy_commands/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/deck_conflict.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/motion_planning/waypoints.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/ordered_set.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_liquid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_parameter_context.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_parameters.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_transfer_liquid_validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/config.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/core_map.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/protocol.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/engine/well.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/instrument.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/module.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/protocol.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/robot.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/well.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/core/well_grid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/deck.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/disposal_locations.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/module_contexts.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/robot_context.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_api/validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/actions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/clients/transports.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/command.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/comment.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/custom.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/close_latch.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/open_latch.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/prepare_shuttle.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/home.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pipetting_common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/pressure_dispense.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/seal_pipette_to_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/engine_support.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/command_executor.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/movement.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/pipetting.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/notes/notes.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/plugins.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/labware_validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/command_history.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/commands.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/config.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/files.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/frustum_helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/geometry.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/liquids.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/modules.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/motion.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/state.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/tips.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/update_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/state/wells.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/execution.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/instrument.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/liquid_level_detection.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/location.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/module.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/tip.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/util.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_engine/types/well_position.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_hasher.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_identifier.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/input_file.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/protocol_source.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/json_translator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/legacy_command_mapper.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocol_runner/task_queue.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/mix.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/constants.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/deck_type.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/definitions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/instrument.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/labware_like.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/api_support/util.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/bundle.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/duration/estimator.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/dev_types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/errors.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/execute_python.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/execution/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/labware_geometry.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/geometry/planning.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/labware.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/models/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/models/json_protocol.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/exceptions.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parameters/validation.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/parse.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/protocols/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/py.typed +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/resources/scripts/lpc21isp +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/simulate.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/camera.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/log_control.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/nmcli.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/resin.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/smoothie_update.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/system/wifi.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/args_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/tools/write_pipette_memory.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/types.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/__init__.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/async_helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/broker.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/change_notifier.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/entrypoint_util.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/get_union_elements.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/linal.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/logging_config.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/logging_queue_handler.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/util/performance_helpers.py +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/SOURCES.txt +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/dependency_links.txt +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/entry_points.txt +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/not-zip-safe +0 -0
- {opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.5.
|
|
3
|
+
Version: 8.5.1
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Author: Opentrons
|
|
6
6
|
Author-email: engineering@opentrons.com
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: ../LICENSE
|
|
24
|
-
Requires-Dist: opentrons-shared-data==8.5.
|
|
24
|
+
Requires-Dist: opentrons-shared-data==8.5.1
|
|
25
25
|
Requires-Dist: aionotify==0.3.1
|
|
26
26
|
Requires-Dist: anyio<4.0.0,>=3.6.1
|
|
27
27
|
Requires-Dist: jsonschema<4.18.0,>=3.0.1
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
|
|
|
35
35
|
Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
|
|
36
36
|
Requires-Dist: packaging>=21.0
|
|
37
37
|
Provides-Extra: ot2-hardware
|
|
38
|
-
Requires-Dist: opentrons-hardware==8.5.
|
|
38
|
+
Requires-Dist: opentrons-hardware==8.5.1; extra == "ot2-hardware"
|
|
39
39
|
Provides-Extra: flex-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware[FLEX]==8.5.
|
|
40
|
+
Requires-Dist: opentrons-hardware[FLEX]==8.5.1; extra == "flex-hardware"
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -30,6 +30,9 @@ from opentrons.protocols.advanced_control.transfers.common import (
|
|
|
30
30
|
NoLiquidClassPropertyError,
|
|
31
31
|
)
|
|
32
32
|
from opentrons.protocols.advanced_control.transfers import common as tx_commons
|
|
33
|
+
from opentrons.protocols.advanced_control.transfers.transfer_liquid_utils import (
|
|
34
|
+
check_current_volume_before_dispensing,
|
|
35
|
+
)
|
|
33
36
|
from opentrons.protocol_engine import commands as cmd
|
|
34
37
|
from opentrons.protocol_engine import (
|
|
35
38
|
DeckPoint,
|
|
@@ -1702,7 +1705,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
1702
1705
|
# multi-dispense in those destinations.
|
|
1703
1706
|
# If the tip has a volume corresponding to a single destination, then
|
|
1704
1707
|
# do a single-dispense into that destination.
|
|
1705
|
-
for dispense_vol, dispense_dest in vol_dest_combo:
|
|
1708
|
+
for idx, (dispense_vol, dispense_dest) in enumerate(vol_dest_combo):
|
|
1706
1709
|
if use_single_dispense:
|
|
1707
1710
|
tip_contents = self.dispense_liquid_class(
|
|
1708
1711
|
volume=dispense_vol,
|
|
@@ -1730,6 +1733,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
1730
1733
|
trash_location=trash_location,
|
|
1731
1734
|
conditioning_volume=conditioning_vol,
|
|
1732
1735
|
disposal_volume=disposal_vol,
|
|
1736
|
+
is_last_dispense_in_tip=(idx == len(vol_dest_combo) - 1),
|
|
1733
1737
|
)
|
|
1734
1738
|
is_first_step = False
|
|
1735
1739
|
|
|
@@ -2143,9 +2147,12 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
2143
2147
|
"""Remove an air gap that was previously added during a transfer."""
|
|
2144
2148
|
if last_air_gap == 0:
|
|
2145
2149
|
return
|
|
2146
|
-
|
|
2150
|
+
current_vol = self.get_current_volume()
|
|
2151
|
+
check_current_volume_before_dispensing(
|
|
2152
|
+
current_volume=current_vol, dispense_volume=last_air_gap
|
|
2153
|
+
)
|
|
2147
2154
|
correction_volume = dispense_props.correction_by_volume.get_for_volume(
|
|
2148
|
-
|
|
2155
|
+
current_vol - last_air_gap
|
|
2149
2156
|
)
|
|
2150
2157
|
# The minimum flow rate should be air_gap_volume per second
|
|
2151
2158
|
flow_rate = max(
|
|
@@ -2280,6 +2287,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
2280
2287
|
trash_location: Union[Location, TrashBin, WasteChute],
|
|
2281
2288
|
conditioning_volume: float,
|
|
2282
2289
|
disposal_volume: float,
|
|
2290
|
+
is_last_dispense_in_tip: bool,
|
|
2283
2291
|
) -> List[tx_comps_executor.LiquidAndAirGapPair]:
|
|
2284
2292
|
"""Execute a dispense step that's part of a multi-dispense.
|
|
2285
2293
|
|
|
@@ -2326,9 +2334,8 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
2326
2334
|
components_executor.submerge(
|
|
2327
2335
|
submerge_properties=dispense_props.submerge, post_submerge_action="dispense"
|
|
2328
2336
|
)
|
|
2329
|
-
tip_starting_volume = self.get_current_volume()
|
|
2330
2337
|
is_last_dispense_without_disposal_vol = (
|
|
2331
|
-
disposal_volume == 0 and
|
|
2338
|
+
disposal_volume == 0 and is_last_dispense_in_tip
|
|
2332
2339
|
)
|
|
2333
2340
|
push_out_vol = (
|
|
2334
2341
|
# TODO (spp): verify if it's okay to use push_out_by_volume of single dispense
|
|
@@ -2348,7 +2355,7 @@ class InstrumentCore(AbstractInstrument[WellCore, LabwareCore]):
|
|
|
2348
2355
|
source_well=source[1] if source else None,
|
|
2349
2356
|
conditioning_volume=conditioning_volume,
|
|
2350
2357
|
add_final_air_gap=add_final_air_gap,
|
|
2351
|
-
is_last_retract=
|
|
2358
|
+
is_last_retract=is_last_dispense_in_tip,
|
|
2352
2359
|
)
|
|
2353
2360
|
last_contents = components_executor.tip_state.last_liquid_and_air_gap_in_tip
|
|
2354
2361
|
new_tip_contents = tip_contents[0:-1] + [last_contents]
|
|
@@ -25,6 +25,7 @@ from opentrons.protocol_engine.errors import TouchTipDisabledError
|
|
|
25
25
|
from opentrons.types import Location, Point, Mount
|
|
26
26
|
from opentrons.protocols.advanced_control.transfers.transfer_liquid_utils import (
|
|
27
27
|
LocationCheckDescriptors,
|
|
28
|
+
check_current_volume_before_dispensing,
|
|
28
29
|
)
|
|
29
30
|
from opentrons.protocols.advanced_control.transfers import (
|
|
30
31
|
transfer_liquid_utils as tx_utils,
|
|
@@ -253,8 +254,12 @@ class TransferComponentsExecutor:
|
|
|
253
254
|
push_out_override: Optional[float],
|
|
254
255
|
) -> None:
|
|
255
256
|
"""Dispense according to dispense properties and wait if enabled."""
|
|
257
|
+
current_vol = self._instrument.get_current_volume()
|
|
258
|
+
check_current_volume_before_dispensing(
|
|
259
|
+
current_volume=current_vol, dispense_volume=volume
|
|
260
|
+
)
|
|
256
261
|
correction_volume = dispense_properties.correction_by_volume.get_for_volume(
|
|
257
|
-
|
|
262
|
+
current_vol - volume
|
|
258
263
|
)
|
|
259
264
|
self._instrument.dispense(
|
|
260
265
|
location=self._target_location,
|
|
@@ -538,6 +543,11 @@ class TransferComponentsExecutor:
|
|
|
538
543
|
blowout_props.enabled
|
|
539
544
|
and blowout_props.location == BlowoutLocation.DESTINATION
|
|
540
545
|
) or not blowout_props.enabled
|
|
546
|
+
|
|
547
|
+
if is_final_air_gap and not add_final_air_gap:
|
|
548
|
+
air_gap_volume = 0.0
|
|
549
|
+
else:
|
|
550
|
+
air_gap_volume = retract_props.air_gap_by_volume.get_for_volume(0)
|
|
541
551
|
# Regardless of the blowout location, do touch tip and air gap
|
|
542
552
|
# when leaving the dispense well. If this will be the final air gap, i.e,
|
|
543
553
|
# we won't be moving to a Trash or a Source for Blowout after this air gap,
|
|
@@ -546,7 +556,7 @@ class TransferComponentsExecutor:
|
|
|
546
556
|
touch_tip_properties=retract_props.touch_tip,
|
|
547
557
|
location=retract_location,
|
|
548
558
|
well=self._target_well,
|
|
549
|
-
|
|
559
|
+
air_gap_volume=air_gap_volume,
|
|
550
560
|
)
|
|
551
561
|
|
|
552
562
|
if (
|
|
@@ -594,15 +604,21 @@ class TransferComponentsExecutor:
|
|
|
594
604
|
last_air_gap = self._tip_state.last_liquid_and_air_gap_in_tip.air_gap
|
|
595
605
|
self._tip_state.delete_air_gap(last_air_gap)
|
|
596
606
|
self._tip_state.ready_to_aspirate = False
|
|
607
|
+
|
|
608
|
+
air_gap_volume = (
|
|
609
|
+
retract_props.air_gap_by_volume.get_for_volume(0)
|
|
610
|
+
if add_final_air_gap
|
|
611
|
+
else 0.0
|
|
612
|
+
)
|
|
597
613
|
# Do touch tip and air gap again after blowing out into source well or trash
|
|
598
614
|
self._do_touch_tip_and_air_gap_after_dispense(
|
|
599
615
|
touch_tip_properties=retract_props.touch_tip,
|
|
600
616
|
location=touch_tip_and_air_gap_location,
|
|
601
617
|
well=touch_tip_and_air_gap_well,
|
|
602
|
-
|
|
618
|
+
air_gap_volume=air_gap_volume,
|
|
603
619
|
)
|
|
604
620
|
|
|
605
|
-
def retract_during_multi_dispensing(
|
|
621
|
+
def retract_during_multi_dispensing( # noqa: C901
|
|
606
622
|
self,
|
|
607
623
|
trash_location: Union[Location, TrashBin, WasteChute],
|
|
608
624
|
source_location: Optional[Location],
|
|
@@ -715,6 +731,14 @@ class TransferComponentsExecutor:
|
|
|
715
731
|
else:
|
|
716
732
|
add_air_gap = True
|
|
717
733
|
|
|
734
|
+
air_gap_volume = (
|
|
735
|
+
retract_props.air_gap_by_volume.get_for_volume(
|
|
736
|
+
self.tip_state.last_liquid_and_air_gap_in_tip.liquid
|
|
737
|
+
)
|
|
738
|
+
if add_air_gap
|
|
739
|
+
else 0.0
|
|
740
|
+
)
|
|
741
|
+
|
|
718
742
|
# Regardless of the blowout location, do touch tip
|
|
719
743
|
# when leaving the dispense well.
|
|
720
744
|
# Add an air gap depending on conditioning volume + whether this is
|
|
@@ -724,7 +748,7 @@ class TransferComponentsExecutor:
|
|
|
724
748
|
touch_tip_properties=retract_props.touch_tip,
|
|
725
749
|
location=retract_location,
|
|
726
750
|
well=self._target_well,
|
|
727
|
-
|
|
751
|
+
air_gap_volume=air_gap_volume,
|
|
728
752
|
)
|
|
729
753
|
|
|
730
754
|
if (
|
|
@@ -771,17 +795,22 @@ class TransferComponentsExecutor:
|
|
|
771
795
|
self._tip_state.delete_last_air_gap_and_liquid()
|
|
772
796
|
self._tip_state.ready_to_aspirate = False
|
|
773
797
|
|
|
798
|
+
if (
|
|
799
|
+
# Same check as before for when it's the final air gap of current retract
|
|
800
|
+
conditioning_volume > 0
|
|
801
|
+
and is_last_retract
|
|
802
|
+
and add_final_air_gap
|
|
803
|
+
):
|
|
804
|
+
# The volume in tip at this point should be 0uL
|
|
805
|
+
air_gap_volume = retract_props.air_gap_by_volume.get_for_volume(0)
|
|
806
|
+
else:
|
|
807
|
+
air_gap_volume = 0
|
|
774
808
|
# Do touch tip and air gap again after blowing out into source well or trash
|
|
775
809
|
self._do_touch_tip_and_air_gap_after_dispense(
|
|
776
810
|
touch_tip_properties=retract_props.touch_tip,
|
|
777
811
|
location=touch_tip_and_air_gap_location,
|
|
778
812
|
well=touch_tip_and_air_gap_well,
|
|
779
|
-
|
|
780
|
-
# Same check as before for when it's the final air gap of current retract
|
|
781
|
-
conditioning_volume > 0
|
|
782
|
-
and is_last_retract
|
|
783
|
-
and add_final_air_gap
|
|
784
|
-
),
|
|
813
|
+
air_gap_volume=air_gap_volume,
|
|
785
814
|
)
|
|
786
815
|
|
|
787
816
|
def _do_touch_tip_and_air_gap_after_dispense( # noqa: C901
|
|
@@ -789,7 +818,7 @@ class TransferComponentsExecutor:
|
|
|
789
818
|
touch_tip_properties: TouchTipProperties,
|
|
790
819
|
location: Union[Location, TrashBin, WasteChute],
|
|
791
820
|
well: Optional[WellCore],
|
|
792
|
-
|
|
821
|
+
air_gap_volume: float,
|
|
793
822
|
) -> None:
|
|
794
823
|
"""Perform touch tip and air gap as part of post-dispense retract.
|
|
795
824
|
|
|
@@ -835,7 +864,7 @@ class TransferComponentsExecutor:
|
|
|
835
864
|
# Full speed because the tip will already be out of the liquid
|
|
836
865
|
speed=None,
|
|
837
866
|
)
|
|
838
|
-
if
|
|
867
|
+
if air_gap_volume > 0 or not self._tip_state.ready_to_aspirate:
|
|
839
868
|
# If we need to move the plunger up either to prepare for aspirate or to add air gap,
|
|
840
869
|
# move to a safe location above the well if the retract location is not already
|
|
841
870
|
# at or above this safe location
|
|
@@ -881,12 +910,8 @@ class TransferComponentsExecutor:
|
|
|
881
910
|
if not self._tip_state.ready_to_aspirate:
|
|
882
911
|
self._instrument.prepare_to_aspirate()
|
|
883
912
|
self._tip_state.ready_to_aspirate = True
|
|
884
|
-
if
|
|
885
|
-
self._add_air_gap(
|
|
886
|
-
air_gap_volume=self._transfer_properties.aspirate.retract.air_gap_by_volume.get_for_volume(
|
|
887
|
-
0
|
|
888
|
-
)
|
|
889
|
-
)
|
|
913
|
+
if air_gap_volume > 0:
|
|
914
|
+
self._add_air_gap(air_gap_volume=air_gap_volume)
|
|
890
915
|
|
|
891
916
|
def _add_air_gap(
|
|
892
917
|
self,
|
|
@@ -840,10 +840,9 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
840
840
|
:type speed: float
|
|
841
841
|
:param mm_from_edge: How far to move inside the well, as a distance from the
|
|
842
842
|
well's edge.
|
|
843
|
-
When ``mm_from_edge=0``, the pipette
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
Lower values will press the tip harder into the well's
|
|
843
|
+
When ``mm_from_edge=0``, the pipette will move to the target well's edge to touch the tip. When ``mm_from_edge=1``,
|
|
844
|
+
the pipette will move to 1 mm from the target well's edge to touch the tip.
|
|
845
|
+
Values lower than 0 will press the tip harder into the target well's
|
|
847
846
|
walls; higher values will touch the well more lightly, or
|
|
848
847
|
not at all.
|
|
849
848
|
``mm_from_edge`` and ``radius`` are mutually exclusive: to
|
|
@@ -1802,9 +1801,6 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1802
1801
|
) -> InstrumentContext:
|
|
1803
1802
|
"""Move a particular type of liquid from one well or group of wells to another.
|
|
1804
1803
|
|
|
1805
|
-
..
|
|
1806
|
-
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1807
|
-
|
|
1808
1804
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
1809
1805
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
1810
1806
|
source contains.
|
|
@@ -1829,6 +1825,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1829
1825
|
|
|
1830
1826
|
:param trash_location: A trash container, well, or other location to dispose of
|
|
1831
1827
|
tips. Depending on the liquid class, the pipette may also blow out liquid here.
|
|
1828
|
+
If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
|
|
1832
1829
|
:param return_tip: Whether to drop used tips in their original locations
|
|
1833
1830
|
in the tip rack, instead of the trash.
|
|
1834
1831
|
:param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
|
|
@@ -1838,7 +1835,6 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1838
1835
|
``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
|
|
1839
1836
|
``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
|
|
1840
1837
|
|
|
1841
|
-
:meta private:
|
|
1842
1838
|
"""
|
|
1843
1839
|
if volume == 0.0:
|
|
1844
1840
|
_log.info(
|
|
@@ -1945,16 +1941,12 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1945
1941
|
"""
|
|
1946
1942
|
Distribute a particular type of liquid from one well to a group of wells.
|
|
1947
1943
|
|
|
1948
|
-
..
|
|
1949
|
-
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1950
|
-
|
|
1951
1944
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
1952
1945
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
1953
1946
|
source contains.
|
|
1954
1947
|
:type liquid_class: :py:class:`.LiquidClass`
|
|
1955
1948
|
|
|
1956
|
-
:param volume: The amount, in µL, to
|
|
1957
|
-
each destination.
|
|
1949
|
+
:param volume: The amount, in µL, to dispense to each destination.
|
|
1958
1950
|
:param source: A single well for the pipette to target, or a group of wells to
|
|
1959
1951
|
target in a single aspirate for a multi-channel pipette.
|
|
1960
1952
|
:param dest: A list of wells to dispense liquid into.
|
|
@@ -1962,13 +1954,14 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1962
1954
|
Defaults to ``"once"``.
|
|
1963
1955
|
|
|
1964
1956
|
- ``"once"``: Use one tip for the entire command.
|
|
1957
|
+
- ``"always"``: Use a new tip before each aspirate.
|
|
1965
1958
|
- ``"never"``: Do not pick up or drop tips at all.
|
|
1966
|
-
- ``"always"``: Pick up a new tip before every aspirate.
|
|
1967
1959
|
|
|
1968
1960
|
See :ref:`param-tip-handling` for details.
|
|
1969
1961
|
|
|
1970
1962
|
:param trash_location: A trash container, well, or other location to dispose of
|
|
1971
1963
|
tips. Depending on the liquid class, the pipette may also blow out liquid here.
|
|
1964
|
+
If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
|
|
1972
1965
|
:param return_tip: Whether to drop used tips in their original locations
|
|
1973
1966
|
in the tip rack, instead of the trash.
|
|
1974
1967
|
:param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
|
|
@@ -1978,7 +1971,6 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1978
1971
|
``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
|
|
1979
1972
|
``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
|
|
1980
1973
|
|
|
1981
|
-
:meta private:
|
|
1982
1974
|
"""
|
|
1983
1975
|
if volume == 0.0:
|
|
1984
1976
|
_log.info(
|
|
@@ -2093,16 +2085,12 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
2093
2085
|
"""
|
|
2094
2086
|
Consolidate a particular type of liquid from a group of wells to one well.
|
|
2095
2087
|
|
|
2096
|
-
..
|
|
2097
|
-
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
2098
|
-
|
|
2099
2088
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
2100
2089
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
2101
2090
|
source contains.
|
|
2102
2091
|
:type liquid_class: :py:class:`.LiquidClass`
|
|
2103
2092
|
|
|
2104
|
-
:param volume: The amount, in µL, to aspirate from
|
|
2105
|
-
each destination.
|
|
2093
|
+
:param volume: The amount, in µL, to aspirate from each source well.
|
|
2106
2094
|
:param source: A list of wells to aspirate liquid from.
|
|
2107
2095
|
:param dest: A single well, list of wells, trash bin, or waste chute to dispense liquid into.
|
|
2108
2096
|
Multiple wells can only be given for multi-channel pipette configurations, and
|
|
@@ -2111,13 +2099,14 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
2111
2099
|
Defaults to ``"once"``.
|
|
2112
2100
|
|
|
2113
2101
|
- ``"once"``: Use one tip for the entire command.
|
|
2102
|
+
- ``"always"``: Use a new tip after each aspirate and dispense, even when visiting the same source again.
|
|
2114
2103
|
- ``"never"``: Do not pick up or drop tips at all.
|
|
2115
|
-
- ``"always"``: Pick up a new tip before going back to source for refilling after a dispense.
|
|
2116
2104
|
|
|
2117
2105
|
See :ref:`param-tip-handling` for details.
|
|
2118
2106
|
|
|
2119
2107
|
:param trash_location: A trash container, well, or other location to dispose of
|
|
2120
2108
|
tips. Depending on the liquid class, the pipette may also blow out liquid here.
|
|
2109
|
+
If not specified, the pipette will dispose of tips in its :py:obj:`~.InstrumentContext.trash_container`.
|
|
2121
2110
|
:param return_tip: Whether to drop used tips in their original locations
|
|
2122
2111
|
in the tip rack, instead of the trash.
|
|
2123
2112
|
:param group_wells: For multi-channel transfers only. If set to ``True``, group together contiguous wells
|
|
@@ -2127,7 +2116,6 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
2127
2116
|
``False``, the last tip will be dropped or returned. If not set, behavior depends on the value of
|
|
2128
2117
|
``new_tip``. ``new_tip="never"`` keeps the tip, and all other values of ``new_tip`` drop or return the tip.
|
|
2129
2118
|
|
|
2130
|
-
:meta private:
|
|
2131
2119
|
"""
|
|
2132
2120
|
if volume == 0.0:
|
|
2133
2121
|
_log.info(
|
|
@@ -1377,12 +1377,17 @@ class ProtocolContext(CommandPublisher):
|
|
|
1377
1377
|
name: str,
|
|
1378
1378
|
) -> LiquidClass:
|
|
1379
1379
|
"""
|
|
1380
|
-
Get an instance of
|
|
1380
|
+
Get an instance of an Opentrons-verified liquid class for use in a Flex protocol.
|
|
1381
1381
|
|
|
1382
|
-
|
|
1383
|
-
|
|
1382
|
+
:param name: Name of an Opentrons-verified liquid class. Must be one of:
|
|
1383
|
+
|
|
1384
|
+
- ``"water"``: an Opentrons-verified liquid class based on deionized water.
|
|
1385
|
+
- ``"glycerol_50"``: an Opentrons-verified liquid class for viscous liquid. Based on 50% glycerol.
|
|
1386
|
+
- ``"ethanol_80"``: an Opentrons-verified liquid class for volatile liquid. Based on 80% ethanol.
|
|
1384
1387
|
|
|
1385
1388
|
:raises: ``LiquidClassDefinitionDoesNotExist``: if the specified liquid class does not exist.
|
|
1389
|
+
|
|
1390
|
+
:returns: A new LiquidClass object.
|
|
1386
1391
|
"""
|
|
1387
1392
|
return self._core.get_liquid_class(name=name, version=DEFAULT_LC_VERSION)
|
|
1388
1393
|
|
|
@@ -1394,29 +1399,16 @@ class ProtocolContext(CommandPublisher):
|
|
|
1394
1399
|
base_liquid_class: Optional[LiquidClass] = None,
|
|
1395
1400
|
display_name: Optional[str] = None,
|
|
1396
1401
|
) -> LiquidClass:
|
|
1397
|
-
"""Define a custom liquid class, either
|
|
1398
|
-
|
|
1399
|
-
Args:
|
|
1400
|
-
name: The name to give to the new liquid class. Cannot use names of existing in-built liquid classes.
|
|
1401
|
-
properties: A dict of transfer properties per tip per pipette.
|
|
1402
|
-
Accepts a nested dictionary in the following format:
|
|
1403
|
-
|
|
1404
|
-
.. code-block:: python
|
|
1402
|
+
"""Define a custom liquid class, either based on an existing liquid class, or create a completely new one.
|
|
1405
1403
|
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
<tiprack_uri>: <properties in the shape of TransferPropertiesDict>
|
|
1404
|
+
:param name: The name to give to the new liquid class. Cannot use the name of an Opentrons-verified liquid class.
|
|
1405
|
+
:param properties: A dict of transfer properties for pipette and tip combinations to use for liquid class transfers. The nested dictionary must have top-level keys corresponding to pipette load names and second-level keys corresponding to compatible tip rack load names. Further nested key–value pairs should be as specified in ``TransferPropertiesDict``. See the `liquid class type definitions <https://github.com/Opentrons/opentrons/blob/edge/shared-data/python/opentrons_shared_data/liquid_classes/types.py>`_.
|
|
1409
1406
|
|
|
1410
|
-
|
|
1411
|
-
# transfer properties returned by the `LiquidClass.get_for(..)` function.
|
|
1412
|
-
}}
|
|
1407
|
+
:param base_liquid_class: An existing liquid class object to base the newly defined liquid class on. The specified ``transfer_properties`` will override any existing properties for the specified pipette and tip combinations. All other properties will remain the same as those in the base class.
|
|
1413
1408
|
|
|
1414
|
-
|
|
1415
|
-
specified in transfer_properties will override any existing ones
|
|
1416
|
-
for the specified pipettes & tips.
|
|
1417
|
-
display_name: An optional human-readable name for the liquid. If not provided,
|
|
1418
|
-
will default to title-cased name.
|
|
1409
|
+
:param display_name: An optional name for the liquid class. Defaults to the title-case ``name`` if a display name isn't provided.
|
|
1419
1410
|
|
|
1411
|
+
:returns: A new LiquidClass object.
|
|
1420
1412
|
"""
|
|
1421
1413
|
if definition_exists(name, DEFAULT_LC_VERSION):
|
|
1422
1414
|
raise ValueError(
|
|
@@ -212,3 +212,20 @@ def _group_wells_for_nozzle_configuration( # noqa: C901
|
|
|
212
212
|
grouped_wells.reverse()
|
|
213
213
|
|
|
214
214
|
return grouped_wells
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def check_current_volume_before_dispensing(
|
|
218
|
+
current_volume: float,
|
|
219
|
+
dispense_volume: float,
|
|
220
|
+
) -> None:
|
|
221
|
+
"""Check if the current volume is valid for dispensing the dispense volume."""
|
|
222
|
+
if current_volume < dispense_volume:
|
|
223
|
+
# Although this should never happen, we can get into an unexpected state
|
|
224
|
+
# following error recovery and not have the expected amount of liquid in the tip.
|
|
225
|
+
# If this happens, we want to raise a useful error so the user can understand
|
|
226
|
+
# the cause of the problem. If we don't make this check for current volume,
|
|
227
|
+
# an unhelpful error might get raised when a '..byVolume' property encounters
|
|
228
|
+
# a negative volume (current_volume - dispense_volume).
|
|
229
|
+
raise RuntimeError(
|
|
230
|
+
f"Cannot dispense {dispense_volume}uL when the tip has only {current_volume}uL."
|
|
231
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.5.
|
|
3
|
+
Version: 8.5.1
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Author: Opentrons
|
|
6
6
|
Author-email: engineering@opentrons.com
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: ../LICENSE
|
|
24
|
-
Requires-Dist: opentrons-shared-data==8.5.
|
|
24
|
+
Requires-Dist: opentrons-shared-data==8.5.1
|
|
25
25
|
Requires-Dist: aionotify==0.3.1
|
|
26
26
|
Requires-Dist: anyio<4.0.0,>=3.6.1
|
|
27
27
|
Requires-Dist: jsonschema<4.18.0,>=3.0.1
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
|
|
|
35
35
|
Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
|
|
36
36
|
Requires-Dist: packaging>=21.0
|
|
37
37
|
Provides-Extra: ot2-hardware
|
|
38
|
-
Requires-Dist: opentrons-hardware==8.5.
|
|
38
|
+
Requires-Dist: opentrons-hardware==8.5.1; extra == "ot2-hardware"
|
|
39
39
|
Provides-Extra: flex-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware[FLEX]==8.5.
|
|
40
|
+
Requires-Dist: opentrons-hardware[FLEX]==8.5.1; extra == "flex-hardware"
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
opentrons-shared-data==8.5.
|
|
1
|
+
opentrons-shared-data==8.5.1
|
|
2
2
|
aionotify==0.3.1
|
|
3
3
|
anyio<4.0.0,>=3.6.1
|
|
4
4
|
jsonschema<4.18.0,>=3.0.1
|
|
@@ -15,7 +15,7 @@ packaging>=21.0
|
|
|
15
15
|
importlib-metadata>=1.0
|
|
16
16
|
|
|
17
17
|
[flex-hardware]
|
|
18
|
-
opentrons-hardware[FLEX]==8.5.
|
|
18
|
+
opentrons-hardware[FLEX]==8.5.1
|
|
19
19
|
|
|
20
20
|
[ot2-hardware]
|
|
21
|
-
opentrons-hardware==8.5.
|
|
21
|
+
opentrons-hardware==8.5.1
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/deck_configuration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/deck_attitude.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot2/pipette_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/deck_attitude.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/gripper_offset.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/module_offset.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/calibration_storage/ot3/pipette_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/async_byonoy.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/absorbance_reader/hid_protocol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/__init__.py
RENAMED
|
File without changes
|
{opentrons-8.5.0a9 → opentrons-8.5.1}/src/opentrons/drivers/asyncio/communication/async_serial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|