opentrons 8.4.0a6__tar.gz → 8.4.0a7__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.4.0a6 → opentrons-8.4.0a7}/PKG-INFO +4 -4
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/well.py +12 -1
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py +2 -1
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/well.py +2 -1
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/instrument_context.py +63 -22
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/labware.py +3 -1
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/protocol_context.py +2 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/pipetting.py +2 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/geometry.py +27 -2
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/__init__.py +2 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/liquid_level_detection.py +14 -20
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/PKG-INFO +4 -4
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/requires.txt +3 -3
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/MANIFEST.in +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/README.rst +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/setup.cfg +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/setup.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/_version.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/deck_configuration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/encoder_decoder.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/file_operators.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/deck_attitude.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/mark_bad_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/models/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/models/v1.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/pipette_offset.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/tip_length.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/deck_attitude.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/gripper_offset.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/models/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/models/v1.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/module_offset.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/pipette_offset.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/cli/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/cli/__main__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/cli/analyze.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/advanced_settings.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/defaults_ot2.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/defaults_ot3.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/feature_flags.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/gripper_config.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/reset.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/robot_configs.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/config/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/async_byonoy.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/hid_protocol.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/absorbance_reader/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/asyncio/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/asyncio/communication/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/asyncio/communication/async_serial.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/asyncio/communication/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/asyncio/communication/serial_connection.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/command_builder.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/flex_stacker/utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/heater_shaker/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/heater_shaker/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/heater_shaker/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/heater_shaker/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/mag_deck/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/mag_deck/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/mag_deck/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/mag_deck/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/dev_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/gpio.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/gpio_simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/interfaces.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/usb.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/rpi_drivers/usb_simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/serial_communication.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/connection.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/constants.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/driver_3_0.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/parse_utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/smoothie_drivers/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/temp_deck/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/temp_deck/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/temp_deck/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/temp_deck/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/thermocycler/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/thermocycler/abstract.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/thermocycler/driver.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/thermocycler/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/drivers/utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/execute.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/__main__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/adapters.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/api.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/controller.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/estop_state.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/flex_protocol.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/ot3controller.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/ot3simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/ot3utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/simulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/status_bar_state.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/subsystem_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/tip_presence_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/backends/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/constants.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/dev_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/abstract_emulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/app.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/connection_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/heater_shaker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/magdeck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/module_server/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/module_server/client.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/module_server/helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/module_server/models.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/module_server/server.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/parser.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/proxy.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/run_emulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/scripts/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/scripts/run_app.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/scripts/run_module_emulator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/scripts/run_smoothie.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/settings.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/simulations.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/smoothie.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/tempdeck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/thermocycler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/emulation/util.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/execution_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/instrument_abc.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot2/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot2/instrument_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot2/pipette.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot2/pipette_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/gripper.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/gripper_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/instrument_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/pipette.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/instruments/ot3/pipette_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/module_control.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/absorbance_reader.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/flex_stacker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/heater_shaker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/lid_temp_status.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/magdeck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/mod_abc.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/module_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/plate_temp_status.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/tempdeck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/thermocycler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/update.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/modules/utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/motion_utilities.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/nozzle_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/ot3_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/ot3api.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/pause_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/poller.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/asyncio_configurable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/calibratable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/chassis_accessory_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/configurable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/event_sourcer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/execution_controllable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/flex_calibratable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/flex_instrument_configurer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/gripper_controller.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/hardware_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/identifiable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/instrument_configurer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/liquid_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/module_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/motion_controller.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/position_estimator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/simulatable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/stoppable.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/protocols/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/robot_calibration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/scripts/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/scripts/gripper_control.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/scripts/repl.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/scripts/tc_control.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/simulator_setup.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/thread_manager.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/threaded_async_lock.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/hardware_control/util.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_broker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/commands.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/module_commands.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/protocol_commands.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/publisher.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/legacy_commands/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/adjacent_slots_getters.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/deck_conflict.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/motion_planning/waypoints.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/ordered_set.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_liquid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_liquid_properties.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_nozzle_layout.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_parameter_context.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_parameters.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_transfer_liquid_validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/config.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/core_map.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/deck_conflict.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/exceptions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/instrument.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/load_labware_params.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/module_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/overlap_versions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/pipette_movement_conflict.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/point_calculations.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/protocol.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/robot.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/stringify.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/engine/transfer_components_executor.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/instrument.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/deck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/labware_offset_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_instrument_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_labware_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_module_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_protocol_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/load_info.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/module_geometry.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/well_geometry.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy_simulator/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy_simulator/legacy_instrument_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/module.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/protocol.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/robot.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/well_grid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/create_protocol_context.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/deck.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/disposal_locations.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/module_contexts.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/module_validation_and_errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/robot_context.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/actions/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/actions/action_dispatcher.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/actions/action_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/actions/actions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/actions/get_state_update.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/clients/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/clients/sync_client.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/clients/transports.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/absorbance_reader/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/absorbance_reader/initialize.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/absorbance_reader/read.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/air_gap_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/aspirate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/aspirate_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/aspirate_while_tracking.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/blow_out.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/blow_out_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/calibration/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/calibration/calibrate_gripper.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/calibration/calibrate_module.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/calibration/calibrate_pipette.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/calibration/move_to_maintenance_position.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/command.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/command_unions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/comment.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/configure_for_volume.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/configure_nozzle_layout.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/custom.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/dispense.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/dispense_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/dispense_while_tracking.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/drop_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/drop_tip_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/close_latch.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/empty.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/fill.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/open_latch.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/prepare_shuttle.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/retrieve.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/set_stored_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/flex_stacker/store.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/generate_command_schema.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/get_next_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/get_tip_presence.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/hash_command_params.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/close_labware_latch.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_heater.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/deactivate_shaker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/open_labware_latch.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/heater_shaker/wait_for_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/home.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/labware_handling_common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/liquid_probe.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_lid_stack.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_liquid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_liquid_class.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_module.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/load_pipette.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/magnetic_module/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/magnetic_module/disengage.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/magnetic_module/engage.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_relative.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_to_addressable_area.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_to_addressable_area_for_drop_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_to_coordinates.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/move_to_well.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/movement_common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/pick_up_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/pipetting_common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/prepare_to_aspirate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/pressure_dispense.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/reload_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/retract_axis.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/close_gripper_jaw.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/move_axes_relative.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/move_axes_to.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/move_to.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/robot/open_gripper_jaw.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/save_position.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/seal_pipette_to_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/set_rail_lights.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/set_status_bar.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/temperature_module/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/temperature_module/deactivate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/temperature_module/wait_for_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/close_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_block.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/deactivate_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/open_lid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_block_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/thermocycler/wait_for_lid_temperature.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/touch_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/unsafe_blow_out_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/unsafe_drop_tip_in_place.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/unsafe_engage_axes.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/unsafe_ungrip_labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unsafe/update_position_estimators.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/unseal_pipette_from_tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/verify_tip_presence.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/wait_for_duration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/commands/wait_for_resume.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/create_protocol_engine.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/engine_support.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/error_recovery_policy.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/errors/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/errors/error_occurrence.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/errors/exceptions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/command_executor.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/create_queue_worker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/door_watcher.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/equipment.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/error_recovery_hardware_state_synchronizer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/gantry_mover.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/hardware_stopper.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/heater_shaker_movement_flagger.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/labware_movement.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/movement.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/queue_worker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/rail_lights.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/run_control.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/status_bar.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/thermocycler_movement_flagger.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/thermocycler_plate_lifter.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/tip_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/labware_offset_standardization.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/notes/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/notes/notes.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/plugins.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/protocol_engine.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/deck_data_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/file_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/fixture_validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/labware_data_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/labware_validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/model_utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/module_data_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/ot3_validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/resources/pipette_data_provider.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/slot_standardization.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/_abstract_store.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/_move_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/_well_math.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/addressable_areas.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/command_history.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/commands.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/config.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/files.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/fluid_stack.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/frustum_helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/liquid_classes.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/liquids.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/absorbance_reader_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/flex_stacker_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/heater_shaker_module_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/magnetic_block_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/magnetic_module_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/temperature_module_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/modules.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/motion.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/pipettes.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/state.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/state_summary.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/tips.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/update_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/state/wells.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/automatic_tip_selection.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/command_annotations.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/deck_configuration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/execution.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/hardware_passthrough.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/instrument.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/instrument_sensors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/labware_movement.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/labware_offset_location.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/labware_offset_vector.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/liquid.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/liquid_class.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/liquid_handling.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/location.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/module.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/partial_tip_configuration.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/run_time_parameters.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/tip.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/util.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/types/well_position.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/extract_labware_definitions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/file_format_validator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/file_hasher.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/file_identifier.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/file_reader_writer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/input_file.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/protocol_files_invalid_error.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/protocol_reader.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/protocol_source.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_reader/role_analyzer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/create_simulating_orchestrator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/json_file_reader.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/json_translator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/legacy_command_mapper.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/legacy_context_plugin.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/protocol_runner.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/python_protocol_wrappers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/run_orchestrator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_runner/task_queue.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/mix.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/transfers/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/transfers/common.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/transfers/transfer.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/advanced_control/transfers/transfer_liquid_utils.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/constants.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/deck_type.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/definitions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/instrument.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/labware_like.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/tip_tracker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/api_support/util.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/bundle.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/duration/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/duration/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/duration/estimator.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/dev_types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/errors.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/execute.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/execute_json_v3.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/execute_json_v4.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/execute_json_v5.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/execute_python.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/json_dispatchers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/execution/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/geometry/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/geometry/labware_geometry.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/geometry/planning.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/labware.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/models/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/models/json_protocol.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/csv_parameter_definition.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/csv_parameter_interface.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/exceptions.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/parameter_definition.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parameters/validation.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/parse.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocols/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/py.typed +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/resources/scripts/lpc21isp +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/resources/smoothie-edge-8414642.hex +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/simulate.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/camera.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/log_control.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/nmcli.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/resin.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/smoothie_update.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/system/wifi.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/tools/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/tools/args_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/tools/write_pipette_memory.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/types.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/__init__.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/async_helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/broker.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/change_notifier.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/entrypoint_util.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/get_union_elements.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/linal.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/logging_config.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/logging_queue_handler.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/util/performance_helpers.py +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/SOURCES.txt +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/dependency_links.txt +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/entry_points.txt +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/not-zip-safe +0 -0
- {opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.4.
|
|
3
|
+
Version: 8.4.0a7
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Author: Opentrons
|
|
6
6
|
Author-email: engineering@opentrons.com
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: ../LICENSE
|
|
24
|
-
Requires-Dist: opentrons-shared-data==8.4.
|
|
24
|
+
Requires-Dist: opentrons-shared-data==8.4.0a7
|
|
25
25
|
Requires-Dist: aionotify==0.3.1
|
|
26
26
|
Requires-Dist: anyio<4.0.0,>=3.6.1
|
|
27
27
|
Requires-Dist: jsonschema<4.18.0,>=3.0.1
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
|
|
|
35
35
|
Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
|
|
36
36
|
Requires-Dist: packaging>=21.0
|
|
37
37
|
Provides-Extra: ot2-hardware
|
|
38
|
-
Requires-Dist: opentrons-hardware==8.4.
|
|
38
|
+
Requires-Dist: opentrons-hardware==8.4.0a7; extra == "ot2-hardware"
|
|
39
39
|
Provides-Extra: flex-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware[FLEX]==8.4.
|
|
40
|
+
Requires-Dist: opentrons-hardware[FLEX]==8.4.0a7; extra == "flex-hardware"
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -3,7 +3,7 @@ from typing import Optional, Union
|
|
|
3
3
|
|
|
4
4
|
from opentrons_shared_data.labware.constants import WELL_NAME_PATTERN
|
|
5
5
|
|
|
6
|
-
from opentrons.types import Point
|
|
6
|
+
from opentrons.types import Point, Mount, MountType
|
|
7
7
|
|
|
8
8
|
from opentrons.protocol_engine import WellLocation, WellOrigin, WellOffset
|
|
9
9
|
from opentrons.protocol_engine import commands as cmd
|
|
@@ -13,6 +13,7 @@ from opentrons.protocol_engine.types.liquid_level_detection import (
|
|
|
13
13
|
SimulatedProbeResult,
|
|
14
14
|
LiquidTrackingType,
|
|
15
15
|
)
|
|
16
|
+
from opentrons.protocol_engine.errors import PipetteNotAttachedError
|
|
16
17
|
|
|
17
18
|
from . import point_calculations
|
|
18
19
|
from . import stringify
|
|
@@ -181,15 +182,25 @@ class WellCore(AbstractWellCore):
|
|
|
181
182
|
|
|
182
183
|
def estimate_liquid_height_after_pipetting(
|
|
183
184
|
self,
|
|
185
|
+
mount: Mount | str,
|
|
184
186
|
operation_volume: float,
|
|
185
187
|
) -> LiquidTrackingType:
|
|
186
188
|
"""Return an estimate of liquid height after pipetting without raising an error."""
|
|
187
189
|
labware_id = self.labware_id
|
|
188
190
|
well_name = self._name
|
|
191
|
+
if isinstance(mount, Mount):
|
|
192
|
+
mount_type = MountType.from_hw_mount(mount)
|
|
193
|
+
else:
|
|
194
|
+
mount_type = MountType(mount)
|
|
195
|
+
pipette_from_mount = self._engine_client.state.pipettes.get_by_mount(mount_type)
|
|
196
|
+
if pipette_from_mount is None:
|
|
197
|
+
raise PipetteNotAttachedError(f"No pipette present on mount {mount}")
|
|
198
|
+
pipette_id = pipette_from_mount.id
|
|
189
199
|
starting_liquid_height = self.current_liquid_height()
|
|
190
200
|
projected_final_height = self._engine_client.state.geometry.get_well_height_after_liquid_handling_no_error(
|
|
191
201
|
labware_id=labware_id,
|
|
192
202
|
well_name=well_name,
|
|
203
|
+
pipette_id=pipette_id,
|
|
193
204
|
initial_height=starting_liquid_height,
|
|
194
205
|
volume=operation_volume,
|
|
195
206
|
)
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_api/core/legacy/legacy_well_core.py
RENAMED
|
@@ -5,7 +5,7 @@ from opentrons_shared_data.labware.constants import WELL_NAME_PATTERN
|
|
|
5
5
|
|
|
6
6
|
from opentrons.protocols.api_support.util import APIVersionError
|
|
7
7
|
|
|
8
|
-
from opentrons.types import Point
|
|
8
|
+
from opentrons.types import Point, Mount
|
|
9
9
|
|
|
10
10
|
from opentrons.protocol_engine.types.liquid_level_detection import (
|
|
11
11
|
SimulatedProbeResult,
|
|
@@ -129,6 +129,7 @@ class LegacyWellCore(AbstractWellCore):
|
|
|
129
129
|
|
|
130
130
|
def estimate_liquid_height_after_pipetting(
|
|
131
131
|
self,
|
|
132
|
+
mount: Mount | str,
|
|
132
133
|
operation_volume: float,
|
|
133
134
|
) -> LiquidTrackingType:
|
|
134
135
|
"""Estimate what the liquid height will be after pipetting, without raising an error."""
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from abc import ABC, abstractmethod
|
|
4
4
|
from typing import TypeVar, Optional, Union
|
|
5
5
|
|
|
6
|
-
from opentrons.types import Point
|
|
6
|
+
from opentrons.types import Point, Mount
|
|
7
7
|
from opentrons.protocol_engine.types import LiquidTrackingType
|
|
8
8
|
|
|
9
9
|
from .._liquid import Liquid
|
|
@@ -91,6 +91,7 @@ class AbstractWellCore(ABC):
|
|
|
91
91
|
@abstractmethod
|
|
92
92
|
def estimate_liquid_height_after_pipetting(
|
|
93
93
|
self,
|
|
94
|
+
mount: Mount | str,
|
|
94
95
|
operation_volume: float,
|
|
95
96
|
) -> LiquidTrackingType:
|
|
96
97
|
"""Estimate what the liquid height will be after pipetting, without raising an error."""
|
|
@@ -1528,6 +1528,9 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1528
1528
|
) -> InstrumentContext:
|
|
1529
1529
|
"""Move a particular type of liquid from one well or group of wells to another.
|
|
1530
1530
|
|
|
1531
|
+
..
|
|
1532
|
+
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1533
|
+
|
|
1531
1534
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
1532
1535
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
1533
1536
|
source contains.
|
|
@@ -1553,7 +1556,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1553
1556
|
:param return_tip: Whether to drop used tips in their original locations
|
|
1554
1557
|
in the tip rack, instead of the trash.
|
|
1555
1558
|
|
|
1556
|
-
|
|
1559
|
+
:meta private:
|
|
1557
1560
|
"""
|
|
1558
1561
|
if volume == 0.0:
|
|
1559
1562
|
_log.info(
|
|
@@ -1635,6 +1638,9 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1635
1638
|
"""
|
|
1636
1639
|
Distribute a particular type of liquid from one well to a group of wells.
|
|
1637
1640
|
|
|
1641
|
+
..
|
|
1642
|
+
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1643
|
+
|
|
1638
1644
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
1639
1645
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
1640
1646
|
source contains.
|
|
@@ -1657,7 +1663,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1657
1663
|
:param return_tip: Whether to drop used tips in their original locations
|
|
1658
1664
|
in the tip rack, instead of the trash.
|
|
1659
1665
|
|
|
1660
|
-
|
|
1666
|
+
:meta private:
|
|
1661
1667
|
"""
|
|
1662
1668
|
if volume == 0.0:
|
|
1663
1669
|
_log.info(
|
|
@@ -1748,6 +1754,9 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1748
1754
|
"""
|
|
1749
1755
|
Consolidate a particular type of liquid from a group of wells to one well.
|
|
1750
1756
|
|
|
1757
|
+
..
|
|
1758
|
+
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1759
|
+
|
|
1751
1760
|
:param liquid_class: The type of liquid to move. You must specify the liquid class,
|
|
1752
1761
|
even if you have used :py:meth:`.Labware.load_liquid` to indicate what liquid the
|
|
1753
1762
|
source contains.
|
|
@@ -1770,7 +1779,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1770
1779
|
:param return_tip: Whether to drop used tips in their original locations
|
|
1771
1780
|
in the tip rack, instead of the trash.
|
|
1772
1781
|
|
|
1773
|
-
|
|
1782
|
+
:meta private:
|
|
1774
1783
|
"""
|
|
1775
1784
|
if volume == 0.0:
|
|
1776
1785
|
_log.info(
|
|
@@ -1944,19 +1953,19 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1944
1953
|
|
|
1945
1954
|
return self
|
|
1946
1955
|
|
|
1947
|
-
@requires_version(2,
|
|
1956
|
+
@requires_version(2, 23)
|
|
1948
1957
|
def resin_tip_seal(
|
|
1949
1958
|
self,
|
|
1950
1959
|
location: Union[labware.Well, labware.Labware],
|
|
1951
1960
|
) -> InstrumentContext:
|
|
1952
1961
|
"""Seal resin tips onto the pipette.
|
|
1953
1962
|
|
|
1954
|
-
The location provided should contain resin tips.
|
|
1955
|
-
|
|
1956
|
-
|
|
1963
|
+
The location provided should contain resin tips. The pipette will attach itself
|
|
1964
|
+
to the resin tips but does not check any tip presence sensors. Before the pipette
|
|
1965
|
+
seals to the tips, the plunger will rise to the top of its working range so that
|
|
1966
|
+
it can perform a :py:func:`resin_tip_dispense` immediately.
|
|
1957
1967
|
|
|
1958
1968
|
:param location: A location containing resin tips, must be a Labware or a Well.
|
|
1959
|
-
|
|
1960
1969
|
:type location: :py:class:`~.types.Location`
|
|
1961
1970
|
"""
|
|
1962
1971
|
if isinstance(location, labware.Labware):
|
|
@@ -1976,7 +1985,7 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
1976
1985
|
)
|
|
1977
1986
|
return self
|
|
1978
1987
|
|
|
1979
|
-
@requires_version(2,
|
|
1988
|
+
@requires_version(2, 23)
|
|
1980
1989
|
def resin_tip_unseal(
|
|
1981
1990
|
self,
|
|
1982
1991
|
location: Union[labware.Well, labware.Labware],
|
|
@@ -2014,31 +2023,62 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
2014
2023
|
|
|
2015
2024
|
return self
|
|
2016
2025
|
|
|
2017
|
-
@requires_version(2,
|
|
2026
|
+
@requires_version(2, 23)
|
|
2018
2027
|
def resin_tip_dispense(
|
|
2019
2028
|
self,
|
|
2020
2029
|
location: types.Location,
|
|
2021
2030
|
volume: Optional[float] = None,
|
|
2022
2031
|
rate: Optional[float] = None,
|
|
2023
2032
|
) -> InstrumentContext:
|
|
2024
|
-
"""
|
|
2033
|
+
"""Push liquid out of resin tips that are currently sealed to a pipette.
|
|
2034
|
+
|
|
2035
|
+
The volume and rate parameters for this function control the motion of the plunger
|
|
2036
|
+
to create a desired pressure profile inside the pipette chamber. Unlike a regular
|
|
2037
|
+
dispense action, the volume and rate do not correspond to liquid volume or flow rate
|
|
2038
|
+
dispensed from the resin tips. Select your values for volume and flow rate based on
|
|
2039
|
+
experimentation with the resin tips to create a pressure profile.
|
|
2040
|
+
|
|
2041
|
+
The common way to use this function is as follows:
|
|
2042
|
+
|
|
2043
|
+
#. Seal resin tips to the pipette using :py:meth:`InstrumentContext.resin_tip_seal`.
|
|
2025
2044
|
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2045
|
+
#. Use :py:meth:`InstrumentContext.resin_tip_dispense` to displace an experimentally
|
|
2046
|
+
derived volume at an experimentally derived rate to create an experimentally derived
|
|
2047
|
+
target pressure inside the pipette.
|
|
2029
2048
|
|
|
2030
|
-
|
|
2049
|
+
#. Use :py:meth:`ProtocolContext.delay` to wait an experimentally derived amount of
|
|
2050
|
+
time for the pressure inside the pipette to push liquid into and through the resin tip
|
|
2051
|
+
and out the other side.
|
|
2052
|
+
|
|
2053
|
+
#. As liquid passes through the resin tip, the pressure inside the pipette will
|
|
2054
|
+
fall. If not all liquid has been dispensed from the resin tip, repeat steps 2
|
|
2055
|
+
and 3.
|
|
2056
|
+
|
|
2057
|
+
#. Unseal resin tips from the pipette using :py:meth:`InstrumentContext.resin_tip_unseal`.
|
|
2058
|
+
|
|
2059
|
+
Flex pipette pressure sensors will raise an overpressure when a differential pressure
|
|
2060
|
+
inside the pipette chamber above sensor limits is detected. You may need to disable the
|
|
2061
|
+
pressure sensor to create the required pressure profile.
|
|
2062
|
+
|
|
2063
|
+
.. warning::
|
|
2064
|
+
Building excessive pressure inside the pipette chamber (significantly above the sensor
|
|
2065
|
+
limit) with the pressure sensors disabled can damage the pipette.
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
:param location: Tells the robot where to dispense.
|
|
2031
2069
|
:type location: :py:class:`~.types.Location`
|
|
2032
2070
|
|
|
2033
|
-
:param volume:
|
|
2034
|
-
|
|
2071
|
+
:param volume: The volume that the plunger should displace, in µL. Does not directly relate
|
|
2072
|
+
to the volume of liquid that will be dispensed.
|
|
2035
2073
|
:type volume: float
|
|
2036
2074
|
|
|
2037
|
-
:param rate:
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2075
|
+
:param rate: How quickly the plunger moves to displace the commanded volume. The plunger speed
|
|
2076
|
+
in µL/s is calculated as ``rate`` multiplied by
|
|
2077
|
+
:py:attr:`flow_rate.dispense<flow_rate>`. This rate does not directly relate to
|
|
2078
|
+
the flow rate of liquid out of the resin tip.
|
|
2041
2079
|
|
|
2080
|
+
The default value of ``10.0`` is recommended.
|
|
2081
|
+
:type rate: float
|
|
2042
2082
|
"""
|
|
2043
2083
|
well: Optional[labware.Well] = None
|
|
2044
2084
|
last_location = self._get_last_location_by_api_version()
|
|
@@ -2658,7 +2698,8 @@ class InstrumentContext(publisher.CommandPublisher):
|
|
|
2658
2698
|
"""
|
|
2659
2699
|
self._raise_if_pressure_not_supported_by_pipette()
|
|
2660
2700
|
loc = well.top()
|
|
2661
|
-
|
|
2701
|
+
self._core.liquid_probe_with_recovery(well._core, loc)
|
|
2702
|
+
return well.current_liquid_height()
|
|
2662
2703
|
|
|
2663
2704
|
def _raise_if_configuration_not_supported_by_pipette(
|
|
2664
2705
|
self, style: NozzleLayout
|
|
@@ -39,6 +39,7 @@ from opentrons.types import (
|
|
|
39
39
|
Point,
|
|
40
40
|
NozzleMapInterface,
|
|
41
41
|
MeniscusTrackingTarget,
|
|
42
|
+
Mount,
|
|
42
43
|
)
|
|
43
44
|
from opentrons.protocols.api_support.types import APIVersion
|
|
44
45
|
from opentrons.protocols.api_support.util import (
|
|
@@ -348,6 +349,7 @@ class Well:
|
|
|
348
349
|
@requires_version(2, 21)
|
|
349
350
|
def estimate_liquid_height_after_pipetting(
|
|
350
351
|
self,
|
|
352
|
+
mount: Mount | str,
|
|
351
353
|
operation_volume: float,
|
|
352
354
|
) -> LiquidTrackingType:
|
|
353
355
|
"""Check the height of the liquid within a well.
|
|
@@ -360,7 +362,7 @@ class Well:
|
|
|
360
362
|
"""
|
|
361
363
|
|
|
362
364
|
projected_final_height = self._core.estimate_liquid_height_after_pipetting(
|
|
363
|
-
operation_volume=operation_volume,
|
|
365
|
+
operation_volume=operation_volume, mount=mount
|
|
364
366
|
)
|
|
365
367
|
return projected_final_height
|
|
366
368
|
|
|
@@ -1363,6 +1363,8 @@ class ProtocolContext(CommandPublisher):
|
|
|
1363
1363
|
) -> LiquidClass:
|
|
1364
1364
|
"""
|
|
1365
1365
|
Define a liquid class for use in the protocol.
|
|
1366
|
+
..
|
|
1367
|
+
This is intended for Opentrons internal use only and is not a guaranteed API.
|
|
1366
1368
|
|
|
1367
1369
|
:meta private:
|
|
1368
1370
|
"""
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/protocol_engine/execution/pipetting.py
RENAMED
|
@@ -199,6 +199,7 @@ class HardwarePipettingHandler(PipettingHandler):
|
|
|
199
199
|
labware_id=labware_id,
|
|
200
200
|
well_name=well_name,
|
|
201
201
|
operation_volume=volume * -1,
|
|
202
|
+
pipette_id=pipette_id,
|
|
202
203
|
)
|
|
203
204
|
if isinstance(aspirate_z_distance, SimulatedProbeResult):
|
|
204
205
|
raise InvalidLiquidHeightFound(
|
|
@@ -234,6 +235,7 @@ class HardwarePipettingHandler(PipettingHandler):
|
|
|
234
235
|
labware_id=labware_id,
|
|
235
236
|
well_name=well_name,
|
|
236
237
|
operation_volume=volume,
|
|
238
|
+
pipette_id=pipette_id,
|
|
237
239
|
)
|
|
238
240
|
if isinstance(dispense_z_distance, SimulatedProbeResult):
|
|
239
241
|
raise InvalidLiquidHeightFound(
|
|
@@ -520,6 +520,7 @@ class GeometryView:
|
|
|
520
520
|
well_location=well_location,
|
|
521
521
|
well_depth=well_depth,
|
|
522
522
|
operation_volume=operation_volume,
|
|
523
|
+
pipette_id=pipette_id,
|
|
523
524
|
)
|
|
524
525
|
if not isinstance(offset_adjustment, SimulatedProbeResult):
|
|
525
526
|
offset = offset.model_copy(update={"z": offset.z + offset_adjustment})
|
|
@@ -1844,6 +1845,7 @@ class GeometryView:
|
|
|
1844
1845
|
self,
|
|
1845
1846
|
labware_id: str,
|
|
1846
1847
|
well_name: str,
|
|
1848
|
+
pipette_id: str,
|
|
1847
1849
|
operation_volume: float,
|
|
1848
1850
|
) -> float:
|
|
1849
1851
|
"""Get the change in height from a liquid handling operation."""
|
|
@@ -1853,6 +1855,7 @@ class GeometryView:
|
|
|
1853
1855
|
final_height = self.get_well_height_after_liquid_handling(
|
|
1854
1856
|
labware_id=labware_id,
|
|
1855
1857
|
well_name=well_name,
|
|
1858
|
+
pipette_id=pipette_id,
|
|
1856
1859
|
initial_height=initial_handling_height,
|
|
1857
1860
|
volume=operation_volume,
|
|
1858
1861
|
)
|
|
@@ -1873,6 +1876,7 @@ class GeometryView:
|
|
|
1873
1876
|
well_name: str,
|
|
1874
1877
|
well_location: WellLocationType,
|
|
1875
1878
|
well_depth: float,
|
|
1879
|
+
pipette_id: Optional[str] = None,
|
|
1876
1880
|
operation_volume: Optional[float] = None,
|
|
1877
1881
|
) -> LiquidTrackingType:
|
|
1878
1882
|
"""Return a z-axis distance that accounts for well handling height and operation volume.
|
|
@@ -1906,9 +1910,14 @@ class GeometryView:
|
|
|
1906
1910
|
volume = well_location.volumeOffset
|
|
1907
1911
|
|
|
1908
1912
|
if volume:
|
|
1913
|
+
if pipette_id is None:
|
|
1914
|
+
raise ValueError(
|
|
1915
|
+
"cannot get liquid handling offset without pipette id."
|
|
1916
|
+
)
|
|
1909
1917
|
liquid_height_after = self.get_well_height_after_liquid_handling(
|
|
1910
1918
|
labware_id=labware_id,
|
|
1911
1919
|
well_name=well_name,
|
|
1920
|
+
pipette_id=pipette_id,
|
|
1912
1921
|
initial_height=initial_handling_height,
|
|
1913
1922
|
volume=volume,
|
|
1914
1923
|
)
|
|
@@ -2030,6 +2039,7 @@ class GeometryView:
|
|
|
2030
2039
|
self,
|
|
2031
2040
|
labware_id: str,
|
|
2032
2041
|
well_name: str,
|
|
2042
|
+
pipette_id: str,
|
|
2033
2043
|
initial_height: LiquidTrackingType,
|
|
2034
2044
|
volume: float,
|
|
2035
2045
|
) -> LiquidTrackingType:
|
|
@@ -2044,7 +2054,14 @@ class GeometryView:
|
|
|
2044
2054
|
initial_volume = find_volume_at_well_height(
|
|
2045
2055
|
target_height=initial_height, well_geometry=well_geometry
|
|
2046
2056
|
)
|
|
2047
|
-
final_volume = initial_volume +
|
|
2057
|
+
final_volume = initial_volume + (
|
|
2058
|
+
volume
|
|
2059
|
+
* self.get_nozzles_per_well(
|
|
2060
|
+
labware_id=labware_id,
|
|
2061
|
+
target_well_name=well_name,
|
|
2062
|
+
pipette_id=pipette_id,
|
|
2063
|
+
)
|
|
2064
|
+
)
|
|
2048
2065
|
return find_height_at_well_volume(
|
|
2049
2066
|
target_volume=final_volume, well_geometry=well_geometry
|
|
2050
2067
|
)
|
|
@@ -2058,6 +2075,7 @@ class GeometryView:
|
|
|
2058
2075
|
self,
|
|
2059
2076
|
labware_id: str,
|
|
2060
2077
|
well_name: str,
|
|
2078
|
+
pipette_id: str,
|
|
2061
2079
|
initial_height: LiquidTrackingType,
|
|
2062
2080
|
volume: float,
|
|
2063
2081
|
) -> LiquidTrackingType:
|
|
@@ -2073,7 +2091,14 @@ class GeometryView:
|
|
|
2073
2091
|
initial_volume = find_volume_at_well_height(
|
|
2074
2092
|
target_height=initial_height, well_geometry=well_geometry
|
|
2075
2093
|
)
|
|
2076
|
-
final_volume = initial_volume +
|
|
2094
|
+
final_volume = initial_volume + (
|
|
2095
|
+
volume
|
|
2096
|
+
* self.get_nozzles_per_well(
|
|
2097
|
+
labware_id=labware_id,
|
|
2098
|
+
target_well_name=well_name,
|
|
2099
|
+
pipette_id=pipette_id,
|
|
2100
|
+
)
|
|
2101
|
+
)
|
|
2077
2102
|
well_volume = find_height_at_well_volume(
|
|
2078
2103
|
target_volume=final_volume,
|
|
2079
2104
|
well_geometry=well_geometry,
|
|
@@ -135,6 +135,7 @@ from .liquid_level_detection import (
|
|
|
135
135
|
WellInfoSummary,
|
|
136
136
|
WellLiquidInfo,
|
|
137
137
|
LiquidTrackingType,
|
|
138
|
+
SimulatedProbeResult,
|
|
138
139
|
)
|
|
139
140
|
from .liquid_handling import FlowRates
|
|
140
141
|
from .labware_movement import LabwareMovementStrategy, LabwareMovementOffsetData
|
|
@@ -280,6 +281,7 @@ __all__ = [
|
|
|
280
281
|
"WellInfoSummary",
|
|
281
282
|
"WellLiquidInfo",
|
|
282
283
|
"LiquidTrackingType",
|
|
284
|
+
"SimulatedProbeResult",
|
|
283
285
|
# Liquid handling
|
|
284
286
|
"FlowRates",
|
|
285
287
|
# Labware movement
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"""Protocol Engine types to do with liquid level detection."""
|
|
2
|
+
|
|
2
3
|
from __future__ import annotations
|
|
3
4
|
from dataclasses import dataclass
|
|
4
5
|
from datetime import datetime
|
|
5
|
-
from typing import Optional, List
|
|
6
|
-
from pydantic import BaseModel, model_serializer,
|
|
6
|
+
from typing import Optional, List, Any
|
|
7
|
+
from pydantic import BaseModel, model_serializer, model_validator
|
|
7
8
|
|
|
8
9
|
|
|
9
10
|
class SimulatedProbeResult(BaseModel):
|
|
@@ -17,6 +18,14 @@ class SimulatedProbeResult(BaseModel):
|
|
|
17
18
|
"""Serialize instances of this class as a string."""
|
|
18
19
|
return "SimulatedProbeResult"
|
|
19
20
|
|
|
21
|
+
@model_validator(mode="before")
|
|
22
|
+
@classmethod
|
|
23
|
+
def validate_model(cls, data: object) -> Any:
|
|
24
|
+
"""Handle deserializing from a simulated probe result."""
|
|
25
|
+
if isinstance(data, str) and data == "SimulatedProbeResult":
|
|
26
|
+
return {}
|
|
27
|
+
return data
|
|
28
|
+
|
|
20
29
|
def __add__(
|
|
21
30
|
self, other: float | SimulatedProbeResult
|
|
22
31
|
) -> float | SimulatedProbeResult:
|
|
@@ -75,7 +84,9 @@ class SimulatedProbeResult(BaseModel):
|
|
|
75
84
|
self.operations_after_probe.append(volume)
|
|
76
85
|
|
|
77
86
|
|
|
78
|
-
|
|
87
|
+
# Work around https://github.com/pydantic/pydantic/issues/6830 - do not change the order of
|
|
88
|
+
# this union
|
|
89
|
+
LiquidTrackingType = float | SimulatedProbeResult
|
|
79
90
|
|
|
80
91
|
|
|
81
92
|
class LoadedVolumeInfo(BaseModel):
|
|
@@ -104,23 +115,6 @@ class ProbedVolumeInfo(BaseModel):
|
|
|
104
115
|
class WellInfoSummary(BaseModel):
|
|
105
116
|
"""Payload for a well's liquid info in StateSummary."""
|
|
106
117
|
|
|
107
|
-
# TODO(cm): 3/21/25: refactor SimulatedLiquidProbe in a way that
|
|
108
|
-
# doesn't require models like this one that are just using it to
|
|
109
|
-
# need a custom validator
|
|
110
|
-
@field_validator("probed_height", "probed_volume", mode="before")
|
|
111
|
-
@classmethod
|
|
112
|
-
def validate_simulated_probe_result(
|
|
113
|
-
cls, input_val: object
|
|
114
|
-
) -> LiquidTrackingType | None:
|
|
115
|
-
"""Return the appropriate input to WellInfoSummary from json data."""
|
|
116
|
-
if input_val is None:
|
|
117
|
-
return None
|
|
118
|
-
if isinstance(input_val, LiquidTrackingType):
|
|
119
|
-
return input_val
|
|
120
|
-
if isinstance(input_val, str) and input_val == "SimulatedProbeResult":
|
|
121
|
-
return SimulatedProbeResult()
|
|
122
|
-
raise ValueError(f"Invalid input value {input_val} to WellInfoSummary")
|
|
123
|
-
|
|
124
118
|
labware_id: str
|
|
125
119
|
well_name: str
|
|
126
120
|
loaded_volume: Optional[float] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: opentrons
|
|
3
|
-
Version: 8.4.
|
|
3
|
+
Version: 8.4.0a7
|
|
4
4
|
Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
|
|
5
5
|
Author: Opentrons
|
|
6
6
|
Author-email: engineering@opentrons.com
|
|
@@ -21,7 +21,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
21
21
|
Classifier: Topic :: Scientific/Engineering
|
|
22
22
|
Requires-Python: >=3.10
|
|
23
23
|
License-File: ../LICENSE
|
|
24
|
-
Requires-Dist: opentrons-shared-data==8.4.
|
|
24
|
+
Requires-Dist: opentrons-shared-data==8.4.0a7
|
|
25
25
|
Requires-Dist: aionotify==0.3.1
|
|
26
26
|
Requires-Dist: anyio<4.0.0,>=3.6.1
|
|
27
27
|
Requires-Dist: jsonschema<4.18.0,>=3.0.1
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pyusb==1.2.1
|
|
|
35
35
|
Requires-Dist: importlib-metadata>=1.0; python_version < "3.8"
|
|
36
36
|
Requires-Dist: packaging>=21.0
|
|
37
37
|
Provides-Extra: ot2-hardware
|
|
38
|
-
Requires-Dist: opentrons-hardware==8.4.
|
|
38
|
+
Requires-Dist: opentrons-hardware==8.4.0a7; extra == "ot2-hardware"
|
|
39
39
|
Provides-Extra: flex-hardware
|
|
40
|
-
Requires-Dist: opentrons-hardware[FLEX]==8.4.
|
|
40
|
+
Requires-Dist: opentrons-hardware[FLEX]==8.4.0a7; extra == "flex-hardware"
|
|
41
41
|
|
|
42
42
|
.. _Full API Documentation: http://docs.opentrons.com
|
|
43
43
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
opentrons-shared-data==8.4.
|
|
1
|
+
opentrons-shared-data==8.4.0a7
|
|
2
2
|
aionotify==0.3.1
|
|
3
3
|
anyio<4.0.0,>=3.6.1
|
|
4
4
|
jsonschema<4.18.0,>=3.0.1
|
|
@@ -15,7 +15,7 @@ packaging>=21.0
|
|
|
15
15
|
importlib-metadata>=1.0
|
|
16
16
|
|
|
17
17
|
[flex-hardware]
|
|
18
|
-
opentrons-hardware[FLEX]==8.4.
|
|
18
|
+
opentrons-hardware[FLEX]==8.4.0a7
|
|
19
19
|
|
|
20
20
|
[ot2-hardware]
|
|
21
|
-
opentrons-hardware==8.4.
|
|
21
|
+
opentrons-hardware==8.4.0a7
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/deck_configuration.py
RENAMED
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/encoder_decoder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/deck_attitude.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot2/pipette_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/deck_attitude.py
RENAMED
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/gripper_offset.py
RENAMED
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/src/opentrons/calibration_storage/ot3/module_offset.py
RENAMED
|
File without changes
|
{opentrons-8.4.0a6 → opentrons-8.4.0a7}/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
|