From 8da6fdfd0bdf904637148242d686c15030bfbd49 Mon Sep 17 00:00:00 2001 From: Xuwznln <18435084+Xuwznln@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:20:07 +0800 Subject: [PATCH] set liquid with tube --- .../liquid_handling/liquid_handler_abstract.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/unilabos/devices/liquid_handling/liquid_handler_abstract.py b/unilabos/devices/liquid_handling/liquid_handler_abstract.py index 3540e5e..ec93617 100644 --- a/unilabos/devices/liquid_handling/liquid_handler_abstract.py +++ b/unilabos/devices/liquid_handling/liquid_handler_abstract.py @@ -21,7 +21,7 @@ from pylabrobot.resources import ( ResourceHolder, Lid, Trash, - Tip, + Tip, TubeRack, ) from typing_extensions import TypedDict @@ -696,10 +696,13 @@ class LiquidHandlerAbstract(LiquidHandlerMiddleware): 如果 liquid_names 和 volumes 为空,但 plate 和 well_names 不为空,直接返回 plate 和 wells。 """ - assert issubclass(plate.__class__, Plate), "plate must be a Plate" - plate: Plate = cast(Plate, cast(Resource, plate)) + assert issubclass(plate.__class__, Plate) or issubclass(plate.__class__, TubeRack) , f"plate must be a Plate, now: {type(plate)}" + plate: Union[Plate, TubeRack] # 根据 well_names 获取对应的 Well 对象 - wells = [plate.get_well(name) for name in well_names] + if issubclass(plate.__class__, Plate): + wells = [plate.get_well(name) for name in well_names] + elif issubclass(plate.__class__, TubeRack): + wells = [plate.get_tube(name) for name in well_names] res_volumes = [] # 如果 liquid_names 和 volumes 都为空,直接返回