opentrons 8.7.0a7__py3-none-any.whl → 8.7.0a8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (147) hide show
  1. opentrons/_version.py +2 -2
  2. opentrons/drivers/asyncio/communication/serial_connection.py +55 -129
  3. opentrons/drivers/flex_stacker/driver.py +6 -1
  4. opentrons/drivers/heater_shaker/abstract.py +0 -5
  5. opentrons/drivers/heater_shaker/driver.py +0 -10
  6. opentrons/drivers/heater_shaker/simulator.py +0 -4
  7. opentrons/drivers/thermocycler/abstract.py +0 -6
  8. opentrons/drivers/thermocycler/driver.py +10 -61
  9. opentrons/drivers/thermocycler/simulator.py +0 -6
  10. opentrons/hardware_control/api.py +5 -24
  11. opentrons/hardware_control/backends/controller.py +2 -8
  12. opentrons/hardware_control/backends/flex_protocol.py +1 -0
  13. opentrons/hardware_control/backends/ot3controller.py +3 -3
  14. opentrons/hardware_control/backends/ot3simulator.py +2 -2
  15. opentrons/hardware_control/backends/simulator.py +1 -2
  16. opentrons/hardware_control/backends/subsystem_manager.py +2 -5
  17. opentrons/hardware_control/emulation/abstract_emulator.py +4 -6
  18. opentrons/hardware_control/emulation/connection_handler.py +5 -8
  19. opentrons/hardware_control/emulation/heater_shaker.py +3 -12
  20. opentrons/hardware_control/emulation/settings.py +1 -1
  21. opentrons/hardware_control/emulation/thermocycler.py +15 -67
  22. opentrons/hardware_control/module_control.py +8 -82
  23. opentrons/hardware_control/modules/__init__.py +0 -3
  24. opentrons/hardware_control/modules/absorbance_reader.py +4 -11
  25. opentrons/hardware_control/modules/flex_stacker.py +9 -38
  26. opentrons/hardware_control/modules/heater_shaker.py +5 -42
  27. opentrons/hardware_control/modules/magdeck.py +4 -8
  28. opentrons/hardware_control/modules/mod_abc.py +5 -13
  29. opentrons/hardware_control/modules/tempdeck.py +5 -25
  30. opentrons/hardware_control/modules/thermocycler.py +11 -68
  31. opentrons/hardware_control/modules/types.py +1 -20
  32. opentrons/hardware_control/modules/utils.py +4 -11
  33. opentrons/hardware_control/nozzle_manager.py +0 -3
  34. opentrons/hardware_control/ot3api.py +7 -26
  35. opentrons/hardware_control/poller.py +8 -22
  36. opentrons/hardware_control/protocols/gripper_controller.py +1 -0
  37. opentrons/hardware_control/scripts/update_module_fw.py +0 -5
  38. opentrons/hardware_control/types.py +2 -31
  39. opentrons/legacy_commands/module_commands.py +0 -23
  40. opentrons/legacy_commands/protocol_commands.py +0 -20
  41. opentrons/legacy_commands/types.py +0 -80
  42. opentrons/motion_planning/deck_conflict.py +12 -17
  43. opentrons/motion_planning/waypoints.py +29 -15
  44. opentrons/protocol_api/__init__.py +1 -5
  45. opentrons/protocol_api/_types.py +1 -6
  46. opentrons/protocol_api/core/common.py +1 -3
  47. opentrons/protocol_api/core/engine/_default_labware_versions.py +11 -32
  48. opentrons/protocol_api/core/engine/labware.py +1 -8
  49. opentrons/protocol_api/core/engine/module_core.py +8 -75
  50. opentrons/protocol_api/core/engine/protocol.py +1 -18
  51. opentrons/protocol_api/core/engine/well.py +0 -8
  52. opentrons/protocol_api/core/legacy/legacy_module_core.py +4 -24
  53. opentrons/protocol_api/core/legacy/legacy_protocol_core.py +1 -11
  54. opentrons/protocol_api/core/legacy/legacy_well_core.py +0 -4
  55. opentrons/protocol_api/core/legacy_simulator/legacy_protocol_core.py +2 -14
  56. opentrons/protocol_api/core/module.py +4 -37
  57. opentrons/protocol_api/core/protocol.py +2 -11
  58. opentrons/protocol_api/core/well.py +0 -4
  59. opentrons/protocol_api/labware.py +0 -5
  60. opentrons/protocol_api/module_contexts.py +11 -117
  61. opentrons/protocol_api/protocol_context.py +4 -26
  62. opentrons/protocol_api/robot_context.py +21 -38
  63. opentrons/protocol_api/validation.py +1 -6
  64. opentrons/protocol_engine/actions/__init__.py +2 -4
  65. opentrons/protocol_engine/actions/actions.py +9 -22
  66. opentrons/protocol_engine/clients/sync_client.py +7 -42
  67. opentrons/protocol_engine/commands/__init__.py +0 -42
  68. opentrons/protocol_engine/commands/absorbance_reader/close_lid.py +15 -2
  69. opentrons/protocol_engine/commands/absorbance_reader/open_lid.py +15 -2
  70. opentrons/protocol_engine/commands/aspirate.py +0 -1
  71. opentrons/protocol_engine/commands/command.py +0 -1
  72. opentrons/protocol_engine/commands/command_unions.py +0 -49
  73. opentrons/protocol_engine/commands/dispense.py +0 -1
  74. opentrons/protocol_engine/commands/drop_tip.py +8 -32
  75. opentrons/protocol_engine/commands/heater_shaker/__init__.py +0 -14
  76. opentrons/protocol_engine/commands/heater_shaker/set_and_wait_for_shake_speed.py +4 -5
  77. opentrons/protocol_engine/commands/heater_shaker/set_target_temperature.py +5 -31
  78. opentrons/protocol_engine/commands/movement_common.py +0 -2
  79. opentrons/protocol_engine/commands/pick_up_tip.py +11 -21
  80. opentrons/protocol_engine/commands/temperature_module/set_target_temperature.py +7 -38
  81. opentrons/protocol_engine/commands/thermocycler/__init__.py +0 -16
  82. opentrons/protocol_engine/commands/thermocycler/run_extended_profile.py +0 -6
  83. opentrons/protocol_engine/commands/thermocycler/run_profile.py +0 -8
  84. opentrons/protocol_engine/commands/thermocycler/set_target_block_temperature.py +6 -40
  85. opentrons/protocol_engine/commands/thermocycler/set_target_lid_temperature.py +5 -29
  86. opentrons/protocol_engine/commands/touch_tip.py +1 -1
  87. opentrons/protocol_engine/commands/unsafe/unsafe_place_labware.py +22 -6
  88. opentrons/protocol_engine/errors/__init__.py +0 -4
  89. opentrons/protocol_engine/errors/exceptions.py +0 -55
  90. opentrons/protocol_engine/execution/__init__.py +0 -2
  91. opentrons/protocol_engine/execution/command_executor.py +0 -8
  92. opentrons/protocol_engine/execution/create_queue_worker.py +1 -5
  93. opentrons/protocol_engine/execution/labware_movement.py +21 -10
  94. opentrons/protocol_engine/execution/movement.py +0 -2
  95. opentrons/protocol_engine/execution/queue_worker.py +0 -4
  96. opentrons/protocol_engine/execution/run_control.py +0 -8
  97. opentrons/protocol_engine/protocol_engine.py +34 -75
  98. opentrons/protocol_engine/resources/__init__.py +0 -2
  99. opentrons/protocol_engine/resources/deck_configuration_provider.py +0 -7
  100. opentrons/protocol_engine/resources/labware_validation.py +6 -10
  101. opentrons/protocol_engine/state/_labware_origin_math.py +636 -0
  102. opentrons/protocol_engine/state/_well_math.py +18 -60
  103. opentrons/protocol_engine/state/addressable_areas.py +0 -2
  104. opentrons/protocol_engine/state/commands.py +11 -14
  105. opentrons/protocol_engine/state/geometry.py +374 -213
  106. opentrons/protocol_engine/state/labware.py +102 -52
  107. opentrons/protocol_engine/state/module_substates/thermocycler_module_substate.py +0 -37
  108. opentrons/protocol_engine/state/modules.py +8 -21
  109. opentrons/protocol_engine/state/motion.py +0 -44
  110. opentrons/protocol_engine/state/state.py +0 -14
  111. opentrons/protocol_engine/state/state_summary.py +0 -2
  112. opentrons/protocol_engine/state/tips.py +258 -177
  113. opentrons/protocol_engine/state/update_types.py +9 -16
  114. opentrons/protocol_engine/types/__init__.py +3 -9
  115. opentrons/protocol_engine/types/deck_configuration.py +1 -5
  116. opentrons/protocol_engine/types/instrument.py +1 -8
  117. opentrons/protocol_engine/types/labware.py +13 -1
  118. opentrons/protocol_engine/types/module.py +0 -10
  119. opentrons/protocol_engine/types/tip.py +0 -9
  120. opentrons/protocol_runner/create_simulating_orchestrator.py +2 -29
  121. opentrons/protocol_runner/run_orchestrator.py +2 -18
  122. opentrons/protocols/api_support/definitions.py +1 -1
  123. opentrons/protocols/api_support/types.py +1 -2
  124. opentrons/simulate.py +15 -48
  125. opentrons/system/camera.py +1 -1
  126. {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a8.dist-info}/METADATA +4 -4
  127. {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a8.dist-info}/RECORD +130 -146
  128. opentrons/protocol_api/core/engine/tasks.py +0 -48
  129. opentrons/protocol_api/core/legacy/tasks.py +0 -19
  130. opentrons/protocol_api/core/legacy_simulator/tasks.py +0 -19
  131. opentrons/protocol_api/core/tasks.py +0 -31
  132. opentrons/protocol_api/tasks.py +0 -48
  133. opentrons/protocol_engine/commands/create_timer.py +0 -83
  134. opentrons/protocol_engine/commands/heater_shaker/common.py +0 -20
  135. opentrons/protocol_engine/commands/heater_shaker/set_shake_speed.py +0 -136
  136. opentrons/protocol_engine/commands/set_tip_state.py +0 -97
  137. opentrons/protocol_engine/commands/thermocycler/start_run_extended_profile.py +0 -191
  138. opentrons/protocol_engine/commands/wait_for_tasks.py +0 -98
  139. opentrons/protocol_engine/execution/task_handler.py +0 -157
  140. opentrons/protocol_engine/resources/concurrency_provider.py +0 -27
  141. opentrons/protocol_engine/state/labware_origin_math/errors.py +0 -94
  142. opentrons/protocol_engine/state/labware_origin_math/stackup_origin_to_labware_origin.py +0 -1331
  143. opentrons/protocol_engine/state/tasks.py +0 -139
  144. opentrons/protocol_engine/types/tasks.py +0 -38
  145. {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a8.dist-info}/WHEEL +0 -0
  146. {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a8.dist-info}/entry_points.txt +0 -0
  147. {opentrons-8.7.0a7.dist-info → opentrons-8.7.0a8.dist-info}/licenses/LICENSE +0 -0
@@ -271,22 +271,6 @@ from .wait_for_duration import (
271
271
  WaitForDurationCommandType,
272
272
  )
273
273
 
274
- from .create_timer import (
275
- CreateTimer,
276
- CreateTimerCreate,
277
- CreateTimerParams,
278
- CreateTimerResult,
279
- CreateTimerCommandType,
280
- )
281
-
282
- from .wait_for_tasks import (
283
- WaitForTasks,
284
- WaitForTasksCreate,
285
- WaitForTasksParams,
286
- WaitForTasksResult,
287
- WaitForTasksCommandType,
288
- )
289
-
290
274
  from .pick_up_tip import (
291
275
  PickUpTip,
292
276
  PickUpTipParams,
@@ -400,14 +384,6 @@ from .get_next_tip import (
400
384
  GetNextTipCommandType,
401
385
  )
402
386
 
403
- from .set_tip_state import (
404
- SetTipState,
405
- SetTipStateCreate,
406
- SetTipStateParams,
407
- SetTipStateResult,
408
- SetTipStateCommandType,
409
- )
410
-
411
387
  from .liquid_probe import (
412
388
  LiquidProbe,
413
389
  LiquidProbeParams,
@@ -643,12 +619,6 @@ __all__ = [
643
619
  "WaitForDurationCreate",
644
620
  "WaitForDurationResult",
645
621
  "WaitForDurationCommandType",
646
- # Timer command models
647
- "CreateTimer",
648
- "CreateTimerCreate",
649
- "CreateTimerParams",
650
- "CreateTimerResult",
651
- "CreateTimerCommandType",
652
622
  # pick up tip command models
653
623
  "PickUpTip",
654
624
  "PickUpTipCreate",
@@ -755,12 +725,6 @@ __all__ = [
755
725
  "GetNextTipParams",
756
726
  "GetNextTipResult",
757
727
  "GetNextTipCommandType",
758
- # set tip state command bundle
759
- "SetTipState",
760
- "SetTipStateCreate",
761
- "SetTipStateParams",
762
- "SetTipStateResult",
763
- "SetTipStateCommandType",
764
728
  # liquid probe command bundle
765
729
  "LiquidProbe",
766
730
  "LiquidProbeParams",
@@ -790,10 +754,4 @@ __all__ = [
790
754
  "PressureDispenseCreate",
791
755
  "PressureDispenseResult",
792
756
  "PressureDispenseCommandType",
793
- # wait for tasks command bundle
794
- "WaitForTasks",
795
- "WaitForTasksCreate",
796
- "WaitForTasksParams",
797
- "WaitForTasksResult",
798
- "WaitForTasksCommandType",
799
757
  ]
@@ -102,12 +102,25 @@ class CloseLidImpl(AbstractCommandImpl[CloseLidParams, SuccessData[CloseLidResul
102
102
  )
103
103
  )
104
104
 
105
+ # The lid's labware definition stores gripper offsets for itself in the
106
+ # space normally meant for offsets for labware stacked atop it.
107
+ lid_gripper_offsets = self._state_view.labware.get_child_gripper_offsets(
108
+ labware_definition=lid_definition,
109
+ slot_name=None,
110
+ )
111
+ if lid_gripper_offsets is None:
112
+ raise ValueError(
113
+ "Gripper Offset values for Absorbance Reader Lid labware must not be None."
114
+ )
115
+
105
116
  await self._labware_movement.move_labware_with_gripper(
106
117
  labware_definition=lid_definition,
107
118
  current_location=current_location,
108
119
  new_location=new_location,
109
- user_pick_up_offset=Point(),
110
- user_drop_offset=Point(),
120
+ user_pick_up_offset=Point.from_xyz_attrs(
121
+ lid_gripper_offsets.pickUpOffset
122
+ ),
123
+ user_drop_offset=Point.from_xyz_attrs(lid_gripper_offsets.dropOffset),
111
124
  post_drop_slide_offset=None,
112
125
  gripper_z_offset=LID_Z_CLEARANCE,
113
126
  )
@@ -103,12 +103,25 @@ class OpenLidImpl(AbstractCommandImpl[OpenLidParams, SuccessData[OpenLidResult]]
103
103
  mod_substate.module_id
104
104
  )
105
105
 
106
+ # The lid's labware definition stores gripper offsets for itself in the
107
+ # space normally meant for offsets for labware stacked atop it.
108
+ lid_gripper_offsets = self._state_view.labware.get_child_gripper_offsets(
109
+ labware_definition=lid_definition,
110
+ slot_name=None,
111
+ )
112
+ if lid_gripper_offsets is None:
113
+ raise ValueError(
114
+ "Gripper Offset values for Absorbance Reader Lid labware must not be None."
115
+ )
116
+
106
117
  await self._labware_movement.move_labware_with_gripper(
107
118
  labware_definition=lid_definition,
108
119
  current_location=current_location,
109
120
  new_location=new_location,
110
- user_pick_up_offset=Point(),
111
- user_drop_offset=Point(),
121
+ user_pick_up_offset=Point.from_xyz_attrs(
122
+ lid_gripper_offsets.pickUpOffset
123
+ ),
124
+ user_drop_offset=Point.from_xyz_attrs(lid_gripper_offsets.dropOffset),
112
125
  post_drop_slide_offset=None,
113
126
  gripper_z_offset=LID_Z_CLEARANCE,
114
127
  )
@@ -161,7 +161,6 @@ class AspirateImplementation(AbstractCommandImpl[AspirateParams, _ExecuteReturn]
161
161
  well_location=well_location,
162
162
  current_well=current_well,
163
163
  operation_volume=-params.volume,
164
- offset_pipette_for_reservoir_subwells=False,
165
164
  )
166
165
  state_update.append(move_result.state_update)
167
166
  if isinstance(move_result, DefinedErrorData):
@@ -185,7 +185,6 @@ class AbstractCommandImpl(
185
185
  tip_handler: execution.TipHandler,
186
186
  run_control: execution.RunControlHandler,
187
187
  rail_lights: execution.RailLightsHandler,
188
- task_handler: execution.TaskHandler,
189
188
  model_utils: ModelUtils,
190
189
  status_bar: execution.StatusBarHandler,
191
190
  command_note_adder: CommandNoteAdder,
@@ -267,22 +267,6 @@ from .wait_for_duration import (
267
267
  WaitForDurationCommandType,
268
268
  )
269
269
 
270
- from .create_timer import (
271
- CreateTimer,
272
- CreateTimerCreate,
273
- CreateTimerParams,
274
- CreateTimerResult,
275
- CreateTimerCommandType,
276
- )
277
-
278
- from .wait_for_tasks import (
279
- WaitForTasks,
280
- WaitForTasksCreate,
281
- WaitForTasksParams,
282
- WaitForTasksResult,
283
- WaitForTasksCommandType,
284
- )
285
-
286
270
  from .pick_up_tip import (
287
271
  PickUpTip,
288
272
  PickUpTipParams,
@@ -388,14 +372,6 @@ from .get_next_tip import (
388
372
  GetNextTipCommandType,
389
373
  )
390
374
 
391
- from .set_tip_state import (
392
- SetTipState,
393
- SetTipStateCreate,
394
- SetTipStateParams,
395
- SetTipStateResult,
396
- SetTipStateCommandType,
397
- )
398
-
399
375
  from .liquid_probe import (
400
376
  LiquidProbe,
401
377
  LiquidProbeParams,
@@ -478,8 +454,6 @@ Command = Annotated[
478
454
  PrepareToAspirate,
479
455
  WaitForResume,
480
456
  WaitForDuration,
481
- WaitForTasks,
482
- CreateTimer,
483
457
  PickUpTip,
484
458
  SavePosition,
485
459
  SetRailLights,
@@ -488,7 +462,6 @@ Command = Annotated[
488
462
  VerifyTipPresence,
489
463
  GetTipPresence,
490
464
  GetNextTip,
491
- SetTipState,
492
465
  LiquidProbe,
493
466
  TryLiquidProbe,
494
467
  SealPipetteToTip,
@@ -498,7 +471,6 @@ Command = Annotated[
498
471
  heater_shaker.SetTargetTemperature,
499
472
  heater_shaker.DeactivateHeater,
500
473
  heater_shaker.SetAndWaitForShakeSpeed,
501
- heater_shaker.SetShakeSpeed,
502
474
  heater_shaker.DeactivateShaker,
503
475
  heater_shaker.OpenLabwareLatch,
504
476
  heater_shaker.CloseLabwareLatch,
@@ -516,7 +488,6 @@ Command = Annotated[
516
488
  thermocycler.OpenLid,
517
489
  thermocycler.CloseLid,
518
490
  thermocycler.RunProfile,
519
- thermocycler.StartRunExtendedProfile,
520
491
  thermocycler.RunExtendedProfile,
521
492
  absorbance_reader.CloseLid,
522
493
  absorbance_reader.OpenLid,
@@ -586,8 +557,6 @@ CommandParams = Union[
586
557
  PrepareToAspirateParams,
587
558
  WaitForResumeParams,
588
559
  WaitForDurationParams,
589
- WaitForTasksParams,
590
- CreateTimerParams,
591
560
  PickUpTipParams,
592
561
  SavePositionParams,
593
562
  SetRailLightsParams,
@@ -596,7 +565,6 @@ CommandParams = Union[
596
565
  VerifyTipPresenceParams,
597
566
  GetTipPresenceParams,
598
567
  GetNextTipParams,
599
- SetTipStateParams,
600
568
  LiquidProbeParams,
601
569
  TryLiquidProbeParams,
602
570
  SealPipetteToTipParams,
@@ -606,7 +574,6 @@ CommandParams = Union[
606
574
  heater_shaker.SetTargetTemperatureParams,
607
575
  heater_shaker.DeactivateHeaterParams,
608
576
  heater_shaker.SetAndWaitForShakeSpeedParams,
609
- heater_shaker.SetShakeSpeedParams,
610
577
  heater_shaker.DeactivateShakerParams,
611
578
  heater_shaker.OpenLabwareLatchParams,
612
579
  heater_shaker.CloseLabwareLatchParams,
@@ -624,7 +591,6 @@ CommandParams = Union[
624
591
  thermocycler.OpenLidParams,
625
592
  thermocycler.CloseLidParams,
626
593
  thermocycler.RunProfileParams,
627
- thermocycler.StartRunExtendedProfileParams,
628
594
  thermocycler.RunExtendedProfileParams,
629
595
  absorbance_reader.CloseLidParams,
630
596
  absorbance_reader.OpenLidParams,
@@ -692,8 +658,6 @@ CommandType = Union[
692
658
  PrepareToAspirateCommandType,
693
659
  WaitForResumeCommandType,
694
660
  WaitForDurationCommandType,
695
- WaitForTasksCommandType,
696
- CreateTimerCommandType,
697
661
  PickUpTipCommandType,
698
662
  SavePositionCommandType,
699
663
  SetRailLightsCommandType,
@@ -702,7 +666,6 @@ CommandType = Union[
702
666
  VerifyTipPresenceCommandType,
703
667
  GetTipPresenceCommandType,
704
668
  GetNextTipCommandType,
705
- SetTipStateCommandType,
706
669
  LiquidProbeCommandType,
707
670
  TryLiquidProbeCommandType,
708
671
  SealPipetteToTipCommandType,
@@ -712,7 +675,6 @@ CommandType = Union[
712
675
  heater_shaker.SetTargetTemperatureCommandType,
713
676
  heater_shaker.DeactivateHeaterCommandType,
714
677
  heater_shaker.SetAndWaitForShakeSpeedCommandType,
715
- heater_shaker.SetShakeSpeedCommandType,
716
678
  heater_shaker.DeactivateShakerCommandType,
717
679
  heater_shaker.OpenLabwareLatchCommandType,
718
680
  heater_shaker.CloseLabwareLatchCommandType,
@@ -730,7 +692,6 @@ CommandType = Union[
730
692
  thermocycler.OpenLidCommandType,
731
693
  thermocycler.CloseLidCommandType,
732
694
  thermocycler.RunProfileCommandType,
733
- thermocycler.StartRunExtendedProfileCommandType,
734
695
  thermocycler.RunExtendedProfileCommandType,
735
696
  absorbance_reader.CloseLidCommandType,
736
697
  absorbance_reader.OpenLidCommandType,
@@ -799,8 +760,6 @@ CommandCreate = Annotated[
799
760
  PrepareToAspirateCreate,
800
761
  WaitForResumeCreate,
801
762
  WaitForDurationCreate,
802
- WaitForTasksCreate,
803
- CreateTimerCreate,
804
763
  PickUpTipCreate,
805
764
  SavePositionCreate,
806
765
  SetRailLightsCreate,
@@ -809,7 +768,6 @@ CommandCreate = Annotated[
809
768
  VerifyTipPresenceCreate,
810
769
  GetTipPresenceCreate,
811
770
  GetNextTipCreate,
812
- SetTipStateCreate,
813
771
  LiquidProbeCreate,
814
772
  TryLiquidProbeCreate,
815
773
  SealPipetteToTipCreate,
@@ -819,7 +777,6 @@ CommandCreate = Annotated[
819
777
  heater_shaker.SetTargetTemperatureCreate,
820
778
  heater_shaker.DeactivateHeaterCreate,
821
779
  heater_shaker.SetAndWaitForShakeSpeedCreate,
822
- heater_shaker.SetShakeSpeedCreate,
823
780
  heater_shaker.DeactivateShakerCreate,
824
781
  heater_shaker.OpenLabwareLatchCreate,
825
782
  heater_shaker.CloseLabwareLatchCreate,
@@ -837,7 +794,6 @@ CommandCreate = Annotated[
837
794
  thermocycler.OpenLidCreate,
838
795
  thermocycler.CloseLidCreate,
839
796
  thermocycler.RunProfileCreate,
840
- thermocycler.StartRunExtendedProfileCreate,
841
797
  thermocycler.RunExtendedProfileCreate,
842
798
  absorbance_reader.CloseLidCreate,
843
799
  absorbance_reader.OpenLidCreate,
@@ -914,8 +870,6 @@ CommandResult = Union[
914
870
  PrepareToAspirateResult,
915
871
  WaitForResumeResult,
916
872
  WaitForDurationResult,
917
- WaitForTasksResult,
918
- CreateTimerResult,
919
873
  PickUpTipResult,
920
874
  SavePositionResult,
921
875
  SetRailLightsResult,
@@ -924,7 +878,6 @@ CommandResult = Union[
924
878
  VerifyTipPresenceResult,
925
879
  GetTipPresenceResult,
926
880
  GetNextTipResult,
927
- SetTipStateResult,
928
881
  LiquidProbeResult,
929
882
  TryLiquidProbeResult,
930
883
  SealPipetteToTipResult,
@@ -934,7 +887,6 @@ CommandResult = Union[
934
887
  heater_shaker.SetTargetTemperatureResult,
935
888
  heater_shaker.DeactivateHeaterResult,
936
889
  heater_shaker.SetAndWaitForShakeSpeedResult,
937
- heater_shaker.SetShakeSpeedResult,
938
890
  heater_shaker.DeactivateShakerResult,
939
891
  heater_shaker.OpenLabwareLatchResult,
940
892
  heater_shaker.CloseLabwareLatchResult,
@@ -952,7 +904,6 @@ CommandResult = Union[
952
904
  thermocycler.OpenLidResult,
953
905
  thermocycler.CloseLidResult,
954
906
  thermocycler.RunProfileResult,
955
- thermocycler.StartRunExtendedProfileResult,
956
907
  thermocycler.RunExtendedProfileResult,
957
908
  absorbance_reader.CloseLidResult,
958
909
  absorbance_reader.OpenLidResult,
@@ -101,7 +101,6 @@ class DispenseImplementation(AbstractCommandImpl[DispenseParams, _ExecuteReturn]
101
101
  well_name=well_name,
102
102
  well_location=well_location,
103
103
  operation_volume=volume,
104
- offset_pipette_for_reservoir_subwells=False,
105
104
  )
106
105
  if isinstance(move_result, DefinedErrorData):
107
106
  return move_result
@@ -12,7 +12,7 @@ from opentrons.protocol_engine.errors.exceptions import TipAttachedError
12
12
  from opentrons.protocol_engine.resources.model_utils import ModelUtils
13
13
 
14
14
  from ..state.update_types import StateUpdate
15
- from ..types import DropTipWellLocation, TipRackWellState
15
+ from ..types import DropTipWellLocation
16
16
  from .pipetting_common import (
17
17
  PipetteIdMixin,
18
18
  TipPhysicallyAttachedError,
@@ -140,25 +140,6 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
140
140
  partially_configured=is_partially_configured,
141
141
  )
142
142
 
143
- is_tip_rack = self._state_view.labware.get_definition(
144
- labware_id
145
- ).parameters.isTiprack
146
-
147
- # It's possible that we are dropping tips into a labware trash for pre API v2.14 OT-2 protocols
148
- # (or something else unexpected), so if it is not a tip rack mark no wells as used
149
- if is_tip_rack:
150
- tips_to_mark_as_used = (
151
- self._state_view.tips.compute_tips_to_mark_as_used_or_empty(
152
- labware_id=labware_id,
153
- well_name=well_name,
154
- nozzle_map=self._state_view.pipettes.get_nozzle_configuration(
155
- pipette_id
156
- ),
157
- )
158
- )
159
- else:
160
- tips_to_mark_as_used = []
161
-
162
143
  move_result = await move_to_well(
163
144
  movement=self._movement_handler,
164
145
  model_utils=self._model_utils,
@@ -171,7 +152,12 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
171
152
  return move_result
172
153
 
173
154
  scrape_type = TipScrapeType.NONE
174
- if params.scrape_tips and is_tip_rack:
155
+ if (
156
+ params.scrape_tips
157
+ and self._state_view.geometry._labware.get_definition(
158
+ labware_id
159
+ ).parameters.isTiprack
160
+ ):
175
161
  if int("".join(filter(str.isdigit, well_name))) <= 6:
176
162
  scrape_type = TipScrapeType.RIGHT_ONE_COL
177
163
  else:
@@ -208,10 +194,6 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
208
194
  pipette_id=params.pipetteId,
209
195
  tip_geometry=None,
210
196
  tip_source=None,
211
- ).update_tip_rack_well_state(
212
- tip_state=TipRackWellState.USED,
213
- labware_id=labware_id,
214
- well_names=tips_to_mark_as_used,
215
197
  ),
216
198
  )
217
199
  else:
@@ -219,16 +201,10 @@ class DropTipImplementation(AbstractCommandImpl[DropTipParams, _ExecuteReturn]):
219
201
  public=DropTipResult(position=move_result.public.position),
220
202
  state_update=move_result.state_update.set_fluid_unknown(
221
203
  pipette_id=pipette_id
222
- )
223
- .update_pipette_tip_state(
204
+ ).update_pipette_tip_state(
224
205
  pipette_id=params.pipetteId,
225
206
  tip_geometry=None,
226
207
  tip_source=None,
227
- )
228
- .update_tip_rack_well_state(
229
- tip_state=TipRackWellState.USED,
230
- labware_id=labware_id,
231
- well_names=tips_to_mark_as_used,
232
208
  ),
233
209
  )
234
210
 
@@ -32,14 +32,6 @@ from .set_and_wait_for_shake_speed import (
32
32
  SetAndWaitForShakeSpeedCommandType,
33
33
  )
34
34
 
35
- from .set_shake_speed import (
36
- SetShakeSpeed,
37
- SetShakeSpeedCreate,
38
- SetShakeSpeedParams,
39
- SetShakeSpeedResult,
40
- SetShakeSpeedCommandType,
41
- )
42
-
43
35
  from .deactivate_shaker import (
44
36
  DeactivateShaker,
45
37
  DeactivateShakerCreate,
@@ -89,12 +81,6 @@ __all__ = [
89
81
  "SetAndWaitForShakeSpeedParams",
90
82
  "SetAndWaitForShakeSpeedResult",
91
83
  "SetAndWaitForShakeSpeedCommandType",
92
- # heaterShaker/setShakeSpeed
93
- "SetShakeSpeed",
94
- "SetShakeSpeedCreate",
95
- "SetShakeSpeedParams",
96
- "SetShakeSpeedResult",
97
- "SetShakeSpeedCommandType",
98
84
  # heaterShaker/deactivateShaker
99
85
  "DeactivateShaker",
100
86
  "DeactivateShakerCreate",
@@ -8,8 +8,6 @@ from ..command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, Succe
8
8
  from ...errors.error_occurrence import ErrorOccurrence
9
9
  from ...state import update_types
10
10
 
11
- from .common import get_heatershaker_ready_to_shake
12
-
13
11
  if TYPE_CHECKING:
14
12
  from opentrons.protocol_engine.state.state import StateView
15
13
  from opentrons.protocol_engine.execution import EquipmentHandler, MovementHandler
@@ -66,9 +64,10 @@ class SetAndWaitForShakeSpeedImpl(
66
64
  module_id=params.moduleId
67
65
  )
68
66
 
69
- validated_speed = await get_heatershaker_ready_to_shake(
70
- hs_module_substate, params.rpm
71
- )
67
+ hs_module_substate.raise_if_labware_latch_not_closed()
68
+
69
+ # Verify speed from hs module view
70
+ validated_speed = hs_module_substate.validate_target_speed(params.rpm)
72
71
 
73
72
  pipette_should_retract = (
74
73
  self._state_view.motion.check_pipette_blocking_hs_shaker(
@@ -1,47 +1,31 @@
1
1
  """Command models to start heating a Heater-Shaker Module."""
2
2
  from __future__ import annotations
3
- from typing import Optional, TYPE_CHECKING, Any
3
+ from typing import Optional, TYPE_CHECKING
4
4
  from typing_extensions import Literal, Type
5
5
 
6
6
  from pydantic import BaseModel, Field
7
- from pydantic.json_schema import SkipJsonSchema
8
7
 
9
8
  from ..command import AbstractCommandImpl, BaseCommand, BaseCommandCreate, SuccessData
10
9
  from ...errors.error_occurrence import ErrorOccurrence
11
10
 
12
11
  if TYPE_CHECKING:
13
12
  from opentrons.protocol_engine.state.state import StateView
14
- from opentrons.protocol_engine.execution import EquipmentHandler, TaskHandler
13
+ from opentrons.protocol_engine.execution import EquipmentHandler
15
14
 
16
15
 
17
16
  SetTargetTemperatureCommandType = Literal["heaterShaker/setTargetTemperature"]
18
17
 
19
18
 
20
- def _remove_default(s: dict[str, Any]) -> None:
21
- s.pop("default", None)
22
-
23
-
24
19
  class SetTargetTemperatureParams(BaseModel):
25
20
  """Input parameters to set a Heater-Shaker's target temperature."""
26
21
 
27
22
  moduleId: str = Field(..., description="Unique ID of the Heater-Shaker Module.")
28
23
  celsius: float = Field(..., description="Target temperature in °C.")
29
- taskId: str | SkipJsonSchema[None] = Field(
30
- None,
31
- description="Id for the background task that manages the temperature",
32
- json_schema_extra=_remove_default,
33
- )
34
24
 
35
25
 
36
26
  class SetTargetTemperatureResult(BaseModel):
37
27
  """Result data from setting a Heater-Shaker's target temperature."""
38
28
 
39
- taskId: str | SkipJsonSchema[None] = Field(
40
- None,
41
- description="The task id for the setTargetTemperature task",
42
- json_schema_extra=_remove_default,
43
- )
44
-
45
29
 
46
30
  class SetTargetTemperatureImpl(
47
31
  AbstractCommandImpl[
@@ -54,12 +38,10 @@ class SetTargetTemperatureImpl(
54
38
  self,
55
39
  state_view: StateView,
56
40
  equipment: EquipmentHandler,
57
- task_handler: TaskHandler,
58
41
  **unused_dependencies: object,
59
42
  ) -> None:
60
43
  self._state_view = state_view
61
44
  self._equipment = equipment
62
- self._task_handler = task_handler
63
45
 
64
46
  async def execute(
65
47
  self,
@@ -79,19 +61,11 @@ class SetTargetTemperatureImpl(
79
61
  hs_module_substate.module_id
80
62
  )
81
63
 
82
- async def start_set_temperature(task_handler: TaskHandler) -> None:
83
- if hs_hardware_module is not None:
84
- async with task_handler.synchronize_cancel_previous(
85
- hs_module_substate.module_id
86
- ):
87
- await hs_hardware_module.start_set_temperature(validated_temp)
88
- await hs_hardware_module.await_temperature(validated_temp)
64
+ if hs_hardware_module is not None:
65
+ await hs_hardware_module.start_set_temperature(validated_temp)
89
66
 
90
- task = await self._task_handler.create_task(
91
- task_function=start_set_temperature, id=params.taskId
92
- )
93
67
  return SuccessData(
94
- public=SetTargetTemperatureResult(taskId=task.id),
68
+ public=SetTargetTemperatureResult(),
95
69
  )
96
70
 
97
71
 
@@ -152,7 +152,6 @@ async def move_to_well(
152
152
  minimum_z_height: Optional[float] = None,
153
153
  speed: Optional[float] = None,
154
154
  operation_volume: Optional[float] = None,
155
- offset_pipette_for_reservoir_subwells: bool = False,
156
155
  ) -> MoveToWellOperationReturn:
157
156
  """Execute a move to well microoperation."""
158
157
  try:
@@ -166,7 +165,6 @@ async def move_to_well(
166
165
  minimum_z_height=minimum_z_height,
167
166
  speed=speed,
168
167
  operation_volume=operation_volume,
169
- offset_pipette_for_reservoir_subwells=offset_pipette_for_reservoir_subwells,
170
168
  )
171
169
  except StallOrCollisionDetectedError as e:
172
170
  return DefinedErrorData(
@@ -10,7 +10,7 @@ from typing_extensions import Literal
10
10
  from ..errors import ErrorOccurrence, PickUpTipTipNotAttachedError
11
11
  from ..resources import ModelUtils
12
12
  from ..state import update_types
13
- from ..types import PickUpTipWellLocation, LabwareWellId, TipRackWellState
13
+ from ..types import PickUpTipWellLocation, LabwareWellId
14
14
  from .pipetting_common import (
15
15
  PipetteIdMixin,
16
16
  )
@@ -121,14 +121,10 @@ class PickUpTipImplementation(AbstractCommandImpl[PickUpTipParams, _ExecuteRetur
121
121
  labware_id = params.labwareId
122
122
  well_name = params.wellName
123
123
 
124
- tips_to_mark_as_empty = (
125
- self._state_view.tips.compute_tips_to_mark_as_used_or_empty(
126
- labware_id=labware_id,
127
- well_name=well_name,
128
- nozzle_map=self._state_view.pipettes.get_nozzle_configuration(
129
- pipette_id
130
- ),
131
- )
124
+ tips_to_mark_as_used = self._state_view.tips.compute_tips_to_mark_as_used(
125
+ labware_id=labware_id,
126
+ well_name=well_name,
127
+ nozzle_map=self._state_view.pipettes.get_nozzle_configuration(pipette_id),
132
128
  )
133
129
 
134
130
  well_location = self._state_view.geometry.convert_pick_up_tip_well_location(
@@ -164,20 +160,16 @@ class PickUpTipImplementation(AbstractCommandImpl[PickUpTipParams, _ExecuteRetur
164
160
  ),
165
161
  )
166
162
  .set_fluid_empty(pipette_id=pipette_id, clean_tip=True)
167
- .update_tip_rack_well_state(
168
- tip_state=TipRackWellState.EMPTY,
169
- labware_id=labware_id,
170
- well_names=tips_to_mark_as_empty,
163
+ .mark_tips_as_used(
164
+ labware_id=labware_id, well_names=tips_to_mark_as_used
171
165
  )
172
166
  )
173
167
  state_update = (
174
168
  update_types.StateUpdate.reduce(
175
169
  update_types.StateUpdate(), move_result.state_update
176
170
  )
177
- .update_tip_rack_well_state(
178
- tip_state=TipRackWellState.EMPTY,
179
- labware_id=labware_id,
180
- well_names=tips_to_mark_as_empty,
171
+ .mark_tips_as_used(
172
+ labware_id=labware_id, well_names=tips_to_mark_as_used
181
173
  )
182
174
  .set_fluid_unknown(pipette_id=pipette_id)
183
175
  )
@@ -205,10 +197,8 @@ class PickUpTipImplementation(AbstractCommandImpl[PickUpTipParams, _ExecuteRetur
205
197
  labware_id=labware_id, well_name=well_name
206
198
  ),
207
199
  )
208
- .update_tip_rack_well_state(
209
- tip_state=TipRackWellState.EMPTY,
210
- labware_id=labware_id,
211
- well_names=tips_to_mark_as_empty,
200
+ .mark_tips_as_used(
201
+ labware_id=labware_id, well_names=tips_to_mark_as_used
212
202
  )
213
203
  .set_fluid_empty(pipette_id=pipette_id, clean_tip=True)
214
204
  .set_pipette_ready_to_aspirate(