opentrons 8.7.0a1__py3-none-any.whl → 8.7.0a3__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.

opentrons/_version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '8.7.0a1'
32
- __version_tuple__ = version_tuple = (8, 7, 0, 'a1')
31
+ __version__ = version = '8.7.0a3'
32
+ __version_tuple__ = version_tuple = (8, 7, 0, 'a3')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -497,13 +497,28 @@ class ProtocolCore(
497
497
  )
498
498
  # if this is a labware with a lid, we just need to find its lid_id
499
499
  else:
500
- lid = self._engine_client.state.labware.get_lid_by_labware_id(
501
- labware.labware_id
500
+ # we need to check to see if this labware is hosting a lid stack
501
+ potential_lid_stack = (
502
+ self._engine_client.state.labware.get_next_child_labware(
503
+ labware.labware_id
504
+ )
502
505
  )
503
- if lid is not None:
504
- lid_id = lid.id
506
+ if potential_lid_stack and labware_validation.is_lid_stack(
507
+ self._engine_client.state.labware.get_load_name(potential_lid_stack)
508
+ ):
509
+ lid_id = self._engine_client.state.labware.get_highest_child_labware(
510
+ labware.labware_id
511
+ )
505
512
  else:
506
- raise ValueError("Cannot move a lid off of a labware with no lid.")
513
+ lid = self._engine_client.state.labware.get_lid_by_labware_id(
514
+ labware.labware_id
515
+ )
516
+ if lid is not None:
517
+ lid_id = lid.id
518
+ else:
519
+ raise ValueError(
520
+ f"Cannot move a lid off of {labware.get_display_name()} because it has no lid."
521
+ )
507
522
 
508
523
  _pick_up_offset = (
509
524
  LabwareOffsetVector(
@@ -607,6 +622,9 @@ class ProtocolCore(
607
622
  )
608
623
 
609
624
  # Handle leftover empty lid stack if there is one
625
+ potential_lid_stack = self._engine_client.state.labware.get_next_child_labware(
626
+ labware.labware_id
627
+ )
610
628
  if (
611
629
  labware_validation.is_lid_stack(labware.load_name)
612
630
  and self._engine_client.state.labware.get_highest_child_labware(
@@ -624,6 +642,25 @@ class ProtocolCore(
624
642
  dropOffset=None,
625
643
  )
626
644
  )
645
+ elif (
646
+ potential_lid_stack
647
+ and labware_validation.is_lid_stack(
648
+ self._engine_client.state.labware.get_load_name(potential_lid_stack)
649
+ )
650
+ and self._engine_client.state.labware.get_highest_child_labware(
651
+ potential_lid_stack
652
+ )
653
+ == potential_lid_stack
654
+ ):
655
+ self._engine_client.execute_command(
656
+ cmd.MoveLabwareParams(
657
+ labwareId=potential_lid_stack,
658
+ newLocation=SYSTEM_LOCATION,
659
+ strategy=LabwareMovementStrategy.MANUAL_MOVE_WITHOUT_PAUSE,
660
+ pickUpOffset=None,
661
+ dropOffset=None,
662
+ )
663
+ )
627
664
 
628
665
  if strategy == LabwareMovementStrategy.USING_GRIPPER:
629
666
  # Clear out last location since it is not relevant to pipetting
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: opentrons
3
- Version: 8.7.0a1
3
+ Version: 8.7.0a3
4
4
  Summary: The Opentrons API is a simple framework designed to make writing automated biology lab protocols easy.
5
5
  Project-URL: opentrons.com, https://www.opentrons.com
6
6
  Project-URL: Source Code On Github, https://github.com/Opentrons/opentrons/tree/edge/api
@@ -24,7 +24,7 @@ Requires-Dist: click<9,>=8.0.0
24
24
  Requires-Dist: importlib-metadata>=1.0; python_version < '3.8'
25
25
  Requires-Dist: jsonschema<4.18.0,>=3.0.1
26
26
  Requires-Dist: numpy<2,>=1.20.0
27
- Requires-Dist: opentrons-shared-data==8.7.0a1
27
+ Requires-Dist: opentrons-shared-data==8.7.0a3
28
28
  Requires-Dist: packaging>=21.0
29
29
  Requires-Dist: pydantic-settings<3,>=2
30
30
  Requires-Dist: pydantic<3,>=2.0.0
@@ -32,6 +32,6 @@ Requires-Dist: pyserial>=3.5
32
32
  Requires-Dist: pyusb==1.2.1
33
33
  Requires-Dist: typing-extensions<5,>=4.0.0
34
34
  Provides-Extra: flex-hardware
35
- Requires-Dist: opentrons-hardware[flex]==8.7.0a1; extra == 'flex-hardware'
35
+ Requires-Dist: opentrons-hardware[flex]==8.7.0a3; extra == 'flex-hardware'
36
36
  Provides-Extra: ot2-hardware
37
- Requires-Dist: opentrons-hardware==8.7.0a1; extra == 'ot2-hardware'
37
+ Requires-Dist: opentrons-hardware==8.7.0a3; extra == 'ot2-hardware'
@@ -1,5 +1,5 @@
1
1
  opentrons/__init__.py,sha256=TQ_Ca_zzAM3iLzAysWKkFkQHG8-imihxDPQbLCYrf-E,4533
2
- opentrons/_version.py,sha256=SN78vIsTT8t_rXBBup1Jg0Zmzddm97urqUZr263vZBg,712
2
+ opentrons/_version.py,sha256=IAMsy3P1gON2CGG_IOimhHRbM6QZupESi0tCqzGfgKU,712
3
3
  opentrons/execute.py,sha256=Y88qICDiHWQjU0L4Ou7DI5OXXu7zZcdkUvNUYmZqIfc,29282
4
4
  opentrons/legacy_broker.py,sha256=XnuEBBlrHCThc31RFW2UR0tGqctqWZ-CZ9vSC4L9whU,1553
5
5
  opentrons/ordered_set.py,sha256=g-SB3qA14yxHu9zjGyc2wC7d2TUCBE6fKZlHAtbPzI8,4082
@@ -262,7 +262,7 @@ opentrons/protocol_api/core/engine/module_core.py,sha256=qxxcqpH-A4Zil9hHDxnvh4H
262
262
  opentrons/protocol_api/core/engine/overlap_versions.py,sha256=PyGvQtQUg1wzNtkuGZtxwXm019PoIjq7em2JiWaxbXc,675
263
263
  opentrons/protocol_api/core/engine/pipette_movement_conflict.py,sha256=9BmtG1kg3vyrssBXflCNZrJIukGp6y5UJ_XqhIz73rI,18148
264
264
  opentrons/protocol_api/core/engine/point_calculations.py,sha256=C2eF0fvJQGMqQv3DzNhc1-m8HTAXTyTsHPJEPrEUEmo,2502
265
- opentrons/protocol_api/core/engine/protocol.py,sha256=MQNMYNII1OxwaQGsKbOgVtmEH54mjDahzD-WHst9MH8,46247
265
+ opentrons/protocol_api/core/engine/protocol.py,sha256=gGGxcSstYs7edonbKVa41yI1XHYYcE9q5itsqHPfpZs,47815
266
266
  opentrons/protocol_api/core/engine/robot.py,sha256=bzUt23NG-clD-9-QFsV_6nm3fMgSmvYEG9DyyZI1xgw,5366
267
267
  opentrons/protocol_api/core/engine/stringify.py,sha256=GwFgEhFMk-uPfFQhQG_2mkaf4cxaItiY8RW7rZwiooQ,2794
268
268
  opentrons/protocol_api/core/engine/transfer_components_executor.py,sha256=mR59C-e6IHSZthlbQEwmRnh5ye8lhr6a0Qp5CNNi9n8,45211
@@ -595,8 +595,8 @@ opentrons/util/linal.py,sha256=IlKAP9HkNBBgULeSf4YVwSKHdx9jnCjSr7nvDvlRALg,5753
595
595
  opentrons/util/logging_config.py,sha256=7et4YYuQdWdq_e50U-8vFS_QyNBRgdnqPGAQJm8qrIo,9954
596
596
  opentrons/util/logging_queue_handler.py,sha256=ZsSJwy-oV8DXwpYiZisQ1PbYwmK2cOslD46AcyJ1E4I,2484
597
597
  opentrons/util/performance_helpers.py,sha256=ew7H8XD20iS6-2TJAzbQeyzStZkkE6PzHt_Adx3wbZQ,5172
598
- opentrons-8.7.0a1.dist-info/METADATA,sha256=VJsAOF5Ya8ZdUbGhic3GWkxexsL2BjOSVmMxJF3zeYY,1607
599
- opentrons-8.7.0a1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
600
- opentrons-8.7.0a1.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
601
- opentrons-8.7.0a1.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
602
- opentrons-8.7.0a1.dist-info/RECORD,,
598
+ opentrons-8.7.0a3.dist-info/METADATA,sha256=FAMezy7_fl99FNK0jbYJKMshprt3jj0hTe_stYtBfvE,1607
599
+ opentrons-8.7.0a3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
600
+ opentrons-8.7.0a3.dist-info/entry_points.txt,sha256=fTa6eGCYkvOtv0ov-KVE8LLGetgb35LQLF9x85OWPVw,106
601
+ opentrons-8.7.0a3.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
602
+ opentrons-8.7.0a3.dist-info/RECORD,,