@@ -591,7 +591,12 @@ async def drop_tips(
591
591
** backend_kwargs ,
592
592
)
593
593
594
- async def return_tips (self , use_channels : Optional [list [int ]] = None , ** backend_kwargs ):
594
+ async def return_tips (
595
+ self ,
596
+ use_channels : Optional [list [int ]] = None ,
597
+ allow_nonzero_volume : bool = False ,
598
+ ** backend_kwargs ,
599
+ ):
595
600
"""Return all tips that are currently picked up to their original place.
596
601
597
602
Examples:
@@ -601,6 +606,9 @@ async def return_tips(self, use_channels: Optional[list[int]] = None, **backend_
601
606
>>> await lh.return_tips()
602
607
603
608
Args:
609
+ use_channels: List of channels to use. Index from front to back. If `None`, all that have
610
+ tips will be used.
611
+ allow_nonzero_volume: If `True`, tips will be returned even if their volumes are not zero.
604
612
backend_kwargs: backend kwargs passed to `drop_tips`.
605
613
606
614
Raises:
@@ -623,7 +631,11 @@ async def return_tips(self, use_channels: Optional[list[int]] = None, **backend_
623
631
if len (tip_spots ) == 0 :
624
632
raise RuntimeError ("No tips have been picked up." )
625
633
626
- return await self .drop_tips (tip_spots = tip_spots , use_channels = channels , ** backend_kwargs )
634
+ return await self .drop_tips (
635
+ tip_spots = tip_spots ,
636
+ use_channels = channels ,
637
+ allow_nonzero_volume = allow_nonzero_volume ** backend_kwargs ,
638
+ )
627
639
628
640
async def discard_tips (
629
641
self ,
@@ -645,6 +657,7 @@ async def discard_tips(
645
657
Args:
646
658
use_channels: List of channels to use. Index from front to back. If `None`, all that have
647
659
tips will be used.
660
+ allow_nonzero_volume: If `True`, tips will be returned even if their volumes are not zero.
648
661
backend_kwargs: Additional keyword arguments for the backend, optional.
649
662
"""
650
663
0 commit comments