OB Project Utils
raw JSON → 0.2.34 verified Mon Apr 27 auth: no python
Utility library for Outerbounds projects, providing helpers for configuration, metaflow integration, and common project tasks. Version 0.2.34 (as of last check) is actively maintained with frequent releases.
pip install ob-project-utils Common errors
error ModuleNotFoundError: No module named 'ob_project_utils' ↓
cause Package not installed or wrong Python environment.
fix
Run 'pip install ob-project-utils' in the correct environment.
error ImportError: cannot import name 'OBProjectConfig' from 'ob_project_utils' ↓
cause OBProjectConfig is in the config submodule, not top-level.
fix
Use 'from ob_project_utils.config import OBProjectConfig'.
error TypeError: __init__() got an unexpected keyword argument 'environment' ↓
cause Older version of MetaflowIntegration does not accept 'environment' parameter.
fix
Upgrade to ob-project-utils>=0.2.20 or use positional args.
Warnings
breaking In version 0.2.0, the configuration module was restructured. Old imports from 'ob_project_utils.configuration' will break. ↓
fix Change import to 'from ob_project_utils.config import OBProjectConfig'.
deprecated The 'metaflow_integration_v1' function is deprecated in favor of 'MetaflowIntegration' class. ↓
fix Use 'from ob_project_utils.metaflow import MetaflowIntegration'.
gotcha The library requires explicit AWS credentials in environment variables; using IAM roles may not work without additional configuration. ↓
fix Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables, or configure boto3 session manually.
Imports
- OBProjectConfig wrong
from ob_project_utils import OBProjectConfigcorrectfrom ob_project_utils.config import OBProjectConfig - MetaflowIntegration
from ob_project_utils.metaflow import MetaflowIntegration
Quickstart
from ob_project_utils.config import OBProjectConfig
from ob_project_utils.metaflow import MetaflowIntegration
import os
config = OBProjectConfig()
print(f"Project name: {config.project_name}")
flow = MetaflowIntegration(environment={'AWS_ACCESS_KEY_ID': os.environ.get('AWS_ACCESS_KEY_ID', ''), 'AWS_SECRET_ACCESS_KEY': os.environ.get('AWS_SECRET_ACCESS_KEY', '')})
print(flow.get_flow_name())