Here are the steps to build a component for the CSDMS Workbench from a library containing a model or a tool.
To help explain these steps, consider a library foo packaged in a Python module foo that exposes a class Foo.
- Wrap the library with a Basic Model Interface (BMI). For the case of the foo library, create a class
BmiFoo and include in the foo module or in a separate bmi_foo module.
- [Optional, but recommended] Create a conda-forge package for the BMI library. For the foo library, the conda-forge package could be
foo or bmi-foo.
- Run the babelizer over the BMI library to create a component that can be imported into pymt. Babelizing the
BmiFoo class would produce the pymt_foo module exposing the Foo class.
- [Optional, but recommended] Create a conda-forge package for the pymt component. For example,
pymt_foo.
@mcflugen @gantian127 @gregtucker: Please feel free edit these steps as you see fit, and add any discussion as comments below!
Here are the steps to build a component for the CSDMS Workbench from a library containing a model or a tool.
To help explain these steps, consider a library foo packaged in a Python module
foothat exposes a classFoo.BmiFooand include in thefoomodule or in a separatebmi_foomodule.fooorbmi-foo.BmiFooclass would produce thepymt_foomodule exposing theFooclass.pymt_foo.@mcflugen @gantian127 @gregtucker: Please feel free edit these steps as you see fit, and add any discussion as comments below!