-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] feat: add HCS Wizard #304
Conversation
😂 |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #304 +/- ##
==========================================
- Coverage 90.24% 90.18% -0.07%
==========================================
Files 76 87 +11
Lines 9585 11513 +1928
==========================================
+ Hits 8650 10383 +1733
- Misses 935 1130 +195 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just so beautiful lovely. some preliminary thoughts
if not plate_database_path: | ||
if not USER_PLATE_DATABASE_PATH.exists(): | ||
USER_PLATE_DATABASE_PATH.parent.mkdir(parents=True, exist_ok=True) | ||
save_database( | ||
load_database(DEFAULT_PLATE_DB_PATH), USER_PLATE_DATABASE_PATH | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm somewhat conflicted about the pattern of copying the default database to the user database. perhaps consider saving only the user-provided wells to the user database, and preserving the pymmcore-provided database independently. A nice object that can help here is a ChainMap. Basically, it's a collection of dictionaries. when you look up a key, if it's not in the first dict, it goes to the second dict, etc... So, load_database
could return a ChainMap
with the default database at the end. That would make it so that new releases of pymmcore-plus could extend the database, while also allowing a user to override any of theme (since earlier mappings in a chain map take precendence)
can we close this one? (don't delete the branch though) |
A widget to automate the selection multiple positions form any type of plate.
NOTE: to see test and see the individual functionality of the wizard, you can run the examples in
examples/hcs_temp
. For a full wizard, run thehcs_wizard.py
example.Screen.Recording.2024-06-24.at.7.48.20.PM.mov