-
Notifications
You must be signed in to change notification settings - Fork 8
feat: add "mask support" for reading & composition #96
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
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #96 +/- ##
==========================================
- Coverage 97.25% 96.56% -0.69%
==========================================
Files 1 1
Lines 364 379 +15
Branches 50 51 +1
==========================================
+ Hits 354 366 +12
- Misses 5 7 +2
- Partials 5 6 +1
🚀 New features to boost your workflow:
|
Introduces a new ReaderOptions dataclass for configuring CZI reader behavior, including mask awareness and visibility check optimization. Updates CziReader and open_czi to accept and document the new reader_options parameter.
…zeiss.git (branch jbl/mask-support)
Updated descriptions for subBlockCacheOptions and readerOptions to enhance readability and provide more complete information.
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.
Pull Request Overview
This PR adds "mask support" functionality to pylibczirw by updating to the latest version of libCZI. The primary purpose is to enable mask-aware tile composition as an opt-in feature while maintaining backwards compatibility.
Key changes:
- Introduction of a
ReaderOptions
dataclass to configure mask awareness and visibility check optimization - Updated libCZI submodule to support mask functionality
- Modified the
open_czi
function andCziReader
class to accept and utilize reader options
Reviewed Changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
pylibCZIrw/czi.py | Adds ReaderOptions dataclass and integrates it into CziReader constructor and open_czi function |
libs/libCZIrw | Updates libCZI submodule to version with mask support |
_pylibCZIrw/src/pylibCZIrw_Config.h | Adds new configuration header file |
_pylibCZIrw/src/bindings/PbHelper.h | Adds atomic lock counting for bitmap wrapper |
_pylibCZIrw/src/bindings/CZIrw.cpp | Exposes ReaderOptions class and new constructor to Python bindings |
_pylibCZIrw/src/api/ReaderOptions.h | Defines C++ ReaderOptions structure |
_pylibCZIrw/src/api/CZIreadAPI.h | Adds new constructor overload accepting ReaderOptions |
_pylibCZIrw/src/api/CZIreadAPI.cpp | Implements ReaderOptions support in API |
_pylibCZIrw/src/api/CMakeLists.txt | Adds ReaderOptions.h to build |
API.md | Documents the new ReaderOptions functionality |
.gitmodules | Updates submodule configuration |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
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.
Pull Request Overview
Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
[x] I followed the How to structure your PR.
[ ] Based on Commit Parsing: In case a new major release will be created (because the body or footer begins with 'BREAKING CHANGE:'), I created a new Jupyter notebook with a matching version.
[ ] Based on Commit Parsing: In case a new minor/patch release will be created (because PR title begins with 'feat'/('fix' or 'perf')), I optionally created a new Jupyter notebook with a matching version.
[x] In case of API changes, I updated API.md.
This PR is updating libCZI to latest version, which includes support for "mask" (c.f. ZEISS/libczi#153).
The new functionality of "mask-aware tile-composition" is made available to pylibczirw by introducing a
ReaderOptions
object which optionally can be passed toopen_czi
. Mask-aware composition is therefore an opt-in function at this point (motivation is to limit risk and ensure backwards compatibility).