Project-MONAI / Project-MONAI/MONAI

Define python level abstraction for a Bundle

Open
#5,821 9 comments 4 reactions 3 assignees View on GitHub

@vikashg is already working on this.

Since Aug 11, 2023.

Feature request
Dominant language
Python
Stars
8.7k
Forks
1.6k
Avg merge
5d 1h
Merged PRs (30d)
20

Description

Is your feature request related to a problem? Please describe.
Currently, we developed many bundles in the model-zoo repo and developed the ConfigParser to load configs.
But actually we don't have a clear definition about what a Bundle is in the python level.
It would be nice to define the Bundle class to represent a bundle and enable users to follow & define their customized bundle structure, and provide the APIs for other applications to easily load and handle a bundle, like MONAI Label, MONAI FL, etc.
Several draft steps to do:

  • Develop BundleWorkflow interface and implement config-based subclass, so bundle can be implemented with JSON/YAML config or python code, just need to follow the interface.
  • How to expose the CLI entry and args for customized BYOCBundleWorkflow in bundle/scripts/.
  • Update FL monai algo to use new workflow.
  • #6720
  • Add tutorial to show how to develop a new pure python-based bundle.
  • Develop Bundle interface for the whole bundle, mainly about folder structure, files, download, etc.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.