Conversation
This introduces sets of optional-dependencies to `pyproject.toml` that allow for reduced dependency installation. The `openlifu-test-app` project, for example, can package only the hardware-communication required dependencies by using the `[io]` option. The base application as used in Slicer should now be installed with the `[app]` option.
- Trims unnecessary parts of the project, including - legacy scripts - the io module (now covered in `openlifu-sdk`) - unused parts of Database (gridweights) - Reorganizes `virtual_fit` module into `seg` - Eliminates "eager" imports in `openlifu.__init__`, to prevent the many-seconds-long importing when accessing any submodule. - Moves importing of heavier-weight packages (which are being made optional by this branch) into the methods that call them, so that the objects can be partially-used without having those dependencies imported. Code that touches `openlifu.virtual_fit` needs to be refactored to use `openlifu.seg.virtualfit`, and code that used things like `openlifu.Transducer` will need to be changed to use `openlifu.xdc.Transducer` reorganize virtual fit and geo remove gridweights Unused enhancement Update transducer.py remove legacy scripts,
|
Interesting - the CI virtual environment isn't picking up the right dependencies (because the "no-option" version grabs a super-minimal set that won't have full functionality). Not sure how to address this? I'd really like |
faba8a3 to
c1e3ae3
Compare
I think this is not possible, to make But that is completely fine, in my opinion. It is very reasonable to make the CI ofr example install One way to achieve something like what you are saying is to rename this package to |
This is a fairly major change to the project, designed to address issues #8 and #10
openlifu-sdk)virtual_fitmodule intosegopenlifu.__init__, to prevent the many-seconds-long importing when accessing any submodule.pyproject.tomlthat allow for reduced dependency installation. Theopenlifu-test-appproject, for example, can package only the hardware-communication required dependencies by using the[io]option. The base application as used in Slicer should now be installed with the[app]option.Code that touches
openlifu.virtual_fitneeds to be refactored to useopenlifu.seg.virtualfit, and code that used things likeopenlifu.Transducerwill need to be changed to useopenlifu.xdc.Transducer