From dc6d81e42534dc8e61f643170911dc1da6115a9f Mon Sep 17 00:00:00 2001 From: fderop Date: Fri, 24 Oct 2025 19:38:54 -0700 Subject: [PATCH 1/3] vols --- pylabrobot/resources/volume_tracker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pylabrobot/resources/volume_tracker.py b/pylabrobot/resources/volume_tracker.py index ea058b95c64..c2c0b9707ba 100644 --- a/pylabrobot/resources/volume_tracker.py +++ b/pylabrobot/resources/volume_tracker.py @@ -150,7 +150,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] def add_liquid(self, liquid: Optional["Liquid"], volume: float) -> None: """Add liquid to the container.""" - if volume > self.get_free_volume(): + if volume > self.get_free_volume() and abs(volume - self.get_free_volume()) > 1e-6: raise TooLittleVolumeError( f"Container {self.thing} has too little volume: {volume}uL > {self.get_free_volume()}uL." ) @@ -188,7 +188,7 @@ def get_free_volume(self) -> float: def get_liquids(self, top_volume: float) -> List[Tuple[Optional[Liquid], float]]: """Get the liquids in the top `top_volume` uL""" - if top_volume > self.get_used_volume(): + if top_volume > self.get_used_volume() and abs(top_volume - self.get_used_volume()) > 1e-6: raise TooLittleLiquidError(f"Tracker only has {self.get_used_volume()}uL") liquids = [] From 154ec720a672876e3c3fcc74adace69a0fd2240e Mon Sep 17 00:00:00 2001 From: fderop Date: Fri, 24 Oct 2025 20:21:03 -0700 Subject: [PATCH 2/3] add --- pylabrobot/resources/volume_tracker.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pylabrobot/resources/volume_tracker.py b/pylabrobot/resources/volume_tracker.py index c2c0b9707ba..5679182ba5e 100644 --- a/pylabrobot/resources/volume_tracker.py +++ b/pylabrobot/resources/volume_tracker.py @@ -124,7 +124,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] """Remove liquid from the container. Top to bottom.""" available_volume = self.get_used_volume() - if volume > available_volume and abs(volume - available_volume) > 1e-6: + if abs(volume - available_volume) > 1e-6: raise TooLittleLiquidError( f"Container {self.thing} has too little liquid: {volume}uL > {available_volume}uL." ) @@ -150,7 +150,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] def add_liquid(self, liquid: Optional["Liquid"], volume: float) -> None: """Add liquid to the container.""" - if volume > self.get_free_volume() and abs(volume - self.get_free_volume()) > 1e-6: + if abs(volume - self.get_free_volume()) > 1e-6: raise TooLittleVolumeError( f"Container {self.thing} has too little volume: {volume}uL > {self.get_free_volume()}uL." ) @@ -188,7 +188,7 @@ def get_free_volume(self) -> float: def get_liquids(self, top_volume: float) -> List[Tuple[Optional[Liquid], float]]: """Get the liquids in the top `top_volume` uL""" - if top_volume > self.get_used_volume() and abs(top_volume - self.get_used_volume()) > 1e-6: + if abs(top_volume - self.get_used_volume()) > 1e-6: raise TooLittleLiquidError(f"Tracker only has {self.get_used_volume()}uL") liquids = [] From 962ab554988872430b52427fa733521357a30cbb Mon Sep 17 00:00:00 2001 From: Rick Wierenga Date: Sun, 9 Nov 2025 17:57:30 -0800 Subject: [PATCH 3/3] fix it --- pylabrobot/resources/volume_tracker.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pylabrobot/resources/volume_tracker.py b/pylabrobot/resources/volume_tracker.py index 5679182ba5e..113a1ae3cbc 100644 --- a/pylabrobot/resources/volume_tracker.py +++ b/pylabrobot/resources/volume_tracker.py @@ -124,7 +124,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] """Remove liquid from the container. Top to bottom.""" available_volume = self.get_used_volume() - if abs(volume - available_volume) > 1e-6: + if (volume - available_volume) > 1e-6: raise TooLittleLiquidError( f"Container {self.thing} has too little liquid: {volume}uL > {available_volume}uL." ) @@ -136,7 +136,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] removed_volume += liquid_volume # If we have more liquid than we need, put the excess back. - if removed_volume > volume and abs(removed_volume - volume) > 1e-6: + if removed_volume > volume: self.pending_liquids.append((liquid, removed_volume - volume)) removed_liquids.append((liquid, liquid_volume - (removed_volume - volume))) else: @@ -150,7 +150,7 @@ def remove_liquid(self, volume: float) -> List[Tuple[Optional["Liquid"], float]] def add_liquid(self, liquid: Optional["Liquid"], volume: float) -> None: """Add liquid to the container.""" - if abs(volume - self.get_free_volume()) > 1e-6: + if (volume - self.get_free_volume()) > 1e-6: raise TooLittleVolumeError( f"Container {self.thing} has too little volume: {volume}uL > {self.get_free_volume()}uL." ) @@ -188,7 +188,7 @@ def get_free_volume(self) -> float: def get_liquids(self, top_volume: float) -> List[Tuple[Optional[Liquid], float]]: """Get the liquids in the top `top_volume` uL""" - if abs(top_volume - self.get_used_volume()) > 1e-6: + if (top_volume - self.get_used_volume()) > 1e-6: raise TooLittleLiquidError(f"Tracker only has {self.get_used_volume()}uL") liquids = []