pylabrobot.lib.liquid_handling.tip_presence_probing.probe_tip_presence_via_pickup#
- async pylabrobot.lib.liquid_handling.tip_presence_probing.probe_tip_presence_via_pickup(tip_spots: List[TipSpot], use_channels: List[int], *, pick_up_tips: Callable[[List[TipSpot], List[int]], Awaitable[None]], drop_tips: Callable[[List[TipSpot], List[int]], Awaitable[None]], sense_tip_presence: Callable[[], Awaitable[Sequence[bool]]] | None = None, missed_channels: Callable[[Exception], Collection[int] | None] | None = None) Dict[str, bool]#
Pick up the tip in each spot and put it back; a channel that comes up empty found none.
After a pick-up that raises, which channels came up empty is read from the error by
missed_channelswhen it names them, else from the channels’ own sensors. The error is raised again when neither says, when they name a channel outside the pick-up, or when no channel came up empty, so a failure other than an empty spot is never taken for one. The tips picked up go straight back into their own spots. Trackers are left as the device’s own calls leave them.- Parameters:
use_channels (List[int]) – the channel for each spot, 0-indexed from the back.
pick_up_tips (Callable[[List[TipSpot], List[int]], Awaitable[None]]) – the device’s pick-up, taking spots and channels.
drop_tips (Callable[[List[TipSpot], List[int]], Awaitable[None]]) – the device’s drop, taking spots and channels.
sense_tip_presence (Callable[[], Awaitable[Sequence[bool]]] | None) – the device’s tip sensors, one flag per channel, indexed by channel.
missed_channels (Callable[[Exception], Collection[int] | None] | None) – the channels a pick-up’s error names as having failed, or None when it names none.
- Returns:
Each spot’s name, and whether it held a tip.
- Raises:
ValueError – As
plan_tip_presence_probes.- Return type: