Skip to content

Maintain digital volume balances also when on_underflow was used#103

Merged
michaelosthege merged 3 commits intomasterfrom
issue-102
Jul 18, 2025
Merged

Maintain digital volume balances also when on_underflow was used#103
michaelosthege merged 3 commits intomasterfrom
issue-102

Conversation

@michaelosthege
Copy link
Member

#102 describes a bug that was overlooked in #101 and lead to violating mass balances in the volume tracking.

This PR fixes the transfer-related worklist operations by

  • Returning aspiratable volumes from Labware.remove, BaseWorklist.aspirate, EvoWorklist.evo_aspirate methods
  • Adapting EvoWorklist.transfer and FluentWorklist.transfer to pass aspiratable volumes to Labware.dispense as an override such that generated commands still dispense volume, but digital liquid volume tracking is only updated with the same volume that was digitally aspirated from the source.

@michaelosthege michaelosthege self-assigned this Jul 16, 2025
@michaelosthege michaelosthege added the bug Something isn't working label Jul 16, 2025
@codecov
Copy link

codecov bot commented Jul 16, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.78%. Comparing base (d22b766) to head (11de601).
Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #103      +/-   ##
==========================================
+ Coverage   95.75%   95.78%   +0.02%     
==========================================
  Files          19       19              
  Lines        1202     1209       +7     
==========================================
+ Hits         1151     1158       +7     
  Misses         51       51              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@michaelosthege
Copy link
Member Author

Self-reviewed this.

Noticed that aspirating from throughs with on_underflow != "raise" can produce very confusing results in reality, depending on the order of pipetting given by liquid class settings.

The implementation will not warn about all wells at the same time, but only start warning once the iterator reaches wells for which the remaining volume in the trough is insufficient.

@michaelosthege michaelosthege merged commit 4bc69f3 into master Jul 18, 2025
8 checks passed
@michaelosthege michaelosthege deleted the issue-102 branch July 18, 2025 11:19
@github-actions github-actions bot locked and limited conversation to collaborators Jul 18, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant