This is a namespace package for custom nodes and subgraphs for maize. Place custom nodes in an appropriate subfolder under maize/steps/
, following the provided template.
Maize-contrib bundles a recent version of the maize core. To install both maize-contrib and maize, simply clone this repository and run:
conda env create -f env-users.yml
conda activate maize
pip install --no-deps ./
If you want to keep up-to-date with the latest changes to the core, clone maize, switch to the directory, and run (in the same conda environment):
pip install --no-deps ./
If you plan on developing, you should use env-dev.yml
instead of env-users.yml
and use the -e
flag for pip
to make your installation editable. If you encounter slow installs or dependency resolution, consider using mamba as a drop-in conda
replacement.
For the basics of the maize workflow manager, consult the maize documentation. To use nodes from this package, simply import the relevant steps from the subpackage:
from maize.steps.mai.example import Example
See the documentation for details on the included steps and utilities.
Follow the development guidelines for maize.
Because this is a namespace package, some development tools (especially linters) can have problems. I have switched from pylint to ruff which seems to handle these environments with no problems. For mypy it is important to specify MYPY_PATH
and explicit-package-bases
(see also this issue). If you're using VSCode, you will want to point Pylance
to both the maize
and maize-contrib
package directories, or it will be unable to find utilities
subpackages.