Orange3-MLflow-Export


NameOrange3-MLflow-Export JSON
Version 0.1.1 PyPI version JSON
download
home_pagehttps://github.com/NIRLab-com/mlflow-model-widget
SummaryExport Orange3 models with preprocessing pipelines to MLflow format for production deployment.
upload_time2025-09-15 10:31:31
maintainerNone
docs_urlNone
authorNIRLAB AG
requires_python>=3.8
licenseGPL-3.0
keywords orange3 add-on mlflow machine learning model export data science deployment preprocessing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Orange3 MLflow Export
====================

An Orange3 add-on that provides seamless export of complete machine learning workflows to MLflow format, including preprocessing pipelines and dependency management for reproducible deployment.

## Overview

Export your Orange3 models with all preprocessing steps intact! This add-on bridges the gap between Orange3's visual machine learning environment and MLflow's production deployment capabilities.

## Key Features

### Complete Pipeline Export
- **Preprocessing Included**: Unlike basic model saving, captures entire preprocessing pipelines (normalization, imputation, feature selection, etc.)
- **Domain Transformations**: Preserves Orange's automatic domain handling for seamless prediction
- **Zero Information Loss**: Everything needed for prediction is included

### Production-Ready Deployment
- **MLflow Standard Format**: Exports to industry-standard MLflow model format
- **Dependency Management**: Automatically includes Orange3, scikit-learn, pandas, numpy, and all dependencies
- **Cross-Platform**: Deploy on any platform supporting MLflow (local, cloud, containers)
- **Serving Ready**: Use `mlflow models serve` immediately after export

### Smart Input Handling
- **Flexible DataFrames**: Accepts pandas DataFrames with automatic type conversion
- **Column Name Mapping**: Intelligently handles feature name mismatches through positional mapping
- **Signature Inference**: Automatically generates input/output schemas from sample data

### Universal Compatibility
- **All Orange Models**: Works with any Orange learner (classification, regression, clustering)
- **Any Preprocessing**: Supports all Orange preprocessing widgets and operations
- **Version Independent**: Models work across different Orange and Python versions

## Quick Start

### Installation
```bash
pip install orange3-mlflow-export
# or from source
pip install .
```

### Basic Usage

**In Orange GUI:**
1. Build your workflow (File → Preprocess → Model)
2. Add MLflow Export widget (Example section)
3. Connect your trained model
4. Set export path and save

**Programmatically:**
```python
from orangecontrib.example.widgets.owmlflowexport import OWMLFlowExport
import Orange

# Train model with preprocessing
data = Orange.data.Table("iris")
preprocessor = Orange.preprocess.preprocess.PreprocessorList([
    Orange.preprocess.Normalize(),
    Orange.preprocess.Impute()
])
processed_data = preprocessor(data)
model = Orange.classification.LogisticRegressionLearner()(processed_data)

# Export to MLflow
widget = OWMLFlowExport()
widget.set_model(model)
widget.filename = "model.mlflow"
widget.do_save()
```

**Deploy and Serve:**
```bash
mlflow models serve -m ./model.mlflow -p 8080
```

## Why Choose This Over Standard Orange Model Saving?

| Feature | Orange Save Model | MLflow Export |
|---------|-------------------|---------------|
| Preprocessing | ❌ Lost | ✅ Preserved |
| Dependencies | ❌ Manual | ✅ Automatic |
| Deployment | ❌ Complex | ✅ One Command |
| Portability | ❌ Limited | ✅ Universal |
| Production Use | ❌ Difficult | ✅ Seamless |

## Use Cases

- **Model Deployment**: Export Orange models for production serving
- **Reproducible Research**: Share complete workflows with dependencies
- **Cross-Platform Models**: Train in Orange, deploy anywhere
- **MLOps Integration**: Integrate Orange models into MLflow tracking and serving
- **Educational**: Demonstrate complete ML pipeline deployment

## Supported Orange Components

**Models:** All Orange learners (Tree, SVM, Neural Network, Linear, etc.)  
**Preprocessing:** Normalize, Impute, Continuize, Feature Selection, PCA, etc.  
**Data Types:** Tabular, spectroscopic, time series, text (with appropriate preprocessing)

## Testing

Verify your exported models with included test scripts:
```bash
python test_spectra_model.py ./your_model.mlflow
python load_predictor.py
```

## Requirements

- Python 3.8+
- Orange3
- MLflow
- pandas, numpy, scikit-learn
- cloudpickle

## Documentation

See the [complete documentation](README_MLFLOW_WIDGET.md) for detailed usage, architecture, and troubleshooting.

## License

GPL-3.0 (same as Orange3)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/NIRLab-com/mlflow-model-widget",
    "name": "Orange3-MLflow-Export",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "orange3 add-on, mlflow, machine learning, model export, data science, deployment, preprocessing",
    "author": "NIRLAB AG",
    "author_email": "dev@nirlab.com",
    "download_url": "https://files.pythonhosted.org/packages/8d/ab/82ee2cec99c77a590f3a9c8780cc07dd6b3eff2f5274314fe29a37f12464/orange3_mlflow_export-0.1.1.tar.gz",
    "platform": null,
    "description": "Orange3 MLflow Export\n====================\n\nAn Orange3 add-on that provides seamless export of complete machine learning workflows to MLflow format, including preprocessing pipelines and dependency management for reproducible deployment.\n\n## Overview\n\nExport your Orange3 models with all preprocessing steps intact! This add-on bridges the gap between Orange3's visual machine learning environment and MLflow's production deployment capabilities.\n\n## Key Features\n\n### Complete Pipeline Export\n- **Preprocessing Included**: Unlike basic model saving, captures entire preprocessing pipelines (normalization, imputation, feature selection, etc.)\n- **Domain Transformations**: Preserves Orange's automatic domain handling for seamless prediction\n- **Zero Information Loss**: Everything needed for prediction is included\n\n### Production-Ready Deployment\n- **MLflow Standard Format**: Exports to industry-standard MLflow model format\n- **Dependency Management**: Automatically includes Orange3, scikit-learn, pandas, numpy, and all dependencies\n- **Cross-Platform**: Deploy on any platform supporting MLflow (local, cloud, containers)\n- **Serving Ready**: Use `mlflow models serve` immediately after export\n\n### Smart Input Handling\n- **Flexible DataFrames**: Accepts pandas DataFrames with automatic type conversion\n- **Column Name Mapping**: Intelligently handles feature name mismatches through positional mapping\n- **Signature Inference**: Automatically generates input/output schemas from sample data\n\n### Universal Compatibility\n- **All Orange Models**: Works with any Orange learner (classification, regression, clustering)\n- **Any Preprocessing**: Supports all Orange preprocessing widgets and operations\n- **Version Independent**: Models work across different Orange and Python versions\n\n## Quick Start\n\n### Installation\n```bash\npip install orange3-mlflow-export\n# or from source\npip install .\n```\n\n### Basic Usage\n\n**In Orange GUI:**\n1. Build your workflow (File \u2192 Preprocess \u2192 Model)\n2. Add MLflow Export widget (Example section)\n3. Connect your trained model\n4. Set export path and save\n\n**Programmatically:**\n```python\nfrom orangecontrib.example.widgets.owmlflowexport import OWMLFlowExport\nimport Orange\n\n# Train model with preprocessing\ndata = Orange.data.Table(\"iris\")\npreprocessor = Orange.preprocess.preprocess.PreprocessorList([\n    Orange.preprocess.Normalize(),\n    Orange.preprocess.Impute()\n])\nprocessed_data = preprocessor(data)\nmodel = Orange.classification.LogisticRegressionLearner()(processed_data)\n\n# Export to MLflow\nwidget = OWMLFlowExport()\nwidget.set_model(model)\nwidget.filename = \"model.mlflow\"\nwidget.do_save()\n```\n\n**Deploy and Serve:**\n```bash\nmlflow models serve -m ./model.mlflow -p 8080\n```\n\n## Why Choose This Over Standard Orange Model Saving?\n\n| Feature | Orange Save Model | MLflow Export |\n|---------|-------------------|---------------|\n| Preprocessing | \u274c Lost | \u2705 Preserved |\n| Dependencies | \u274c Manual | \u2705 Automatic |\n| Deployment | \u274c Complex | \u2705 One Command |\n| Portability | \u274c Limited | \u2705 Universal |\n| Production Use | \u274c Difficult | \u2705 Seamless |\n\n## Use Cases\n\n- **Model Deployment**: Export Orange models for production serving\n- **Reproducible Research**: Share complete workflows with dependencies\n- **Cross-Platform Models**: Train in Orange, deploy anywhere\n- **MLOps Integration**: Integrate Orange models into MLflow tracking and serving\n- **Educational**: Demonstrate complete ML pipeline deployment\n\n## Supported Orange Components\n\n**Models:** All Orange learners (Tree, SVM, Neural Network, Linear, etc.)  \n**Preprocessing:** Normalize, Impute, Continuize, Feature Selection, PCA, etc.  \n**Data Types:** Tabular, spectroscopic, time series, text (with appropriate preprocessing)\n\n## Testing\n\nVerify your exported models with included test scripts:\n```bash\npython test_spectra_model.py ./your_model.mlflow\npython load_predictor.py\n```\n\n## Requirements\n\n- Python 3.8+\n- Orange3\n- MLflow\n- pandas, numpy, scikit-learn\n- cloudpickle\n\n## Documentation\n\nSee the [complete documentation](README_MLFLOW_WIDGET.md) for detailed usage, architecture, and troubleshooting.\n\n## License\n\nGPL-3.0 (same as Orange3)\n",
    "bugtrack_url": null,
    "license": "GPL-3.0",
    "summary": "Export Orange3 models with preprocessing pipelines to MLflow format for production deployment.",
    "version": "0.1.1",
    "project_urls": {
        "Bug Reports": "https://github.com/NIRLab-com/mlflow-model-widget/issues",
        "Documentation": "https://github.com/NIRLab-com/mlflow-model-widget/blob/main/README_MLFLOW_WIDGET.md",
        "Homepage": "https://github.com/NIRLab-com/mlflow-model-widget",
        "Source": "https://github.com/NIRLab-com/mlflow-model-widget"
    },
    "split_keywords": [
        "orange3 add-on",
        " mlflow",
        " machine learning",
        " model export",
        " data science",
        " deployment",
        " preprocessing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "87563fb12aeca7a2ab826bfb18350ed3fc6888dde61cb161ef66704a85059f00",
                "md5": "1fbdfdccb73b41e779088db2bd80a231",
                "sha256": "84f8a2135273df729431559a4b1180ebb6a8110a40c878f081067321c5ef0cef"
            },
            "downloads": -1,
            "filename": "orange3_mlflow_export-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1fbdfdccb73b41e779088db2bd80a231",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 10661,
            "upload_time": "2025-09-15T10:31:30",
            "upload_time_iso_8601": "2025-09-15T10:31:30.770762Z",
            "url": "https://files.pythonhosted.org/packages/87/56/3fb12aeca7a2ab826bfb18350ed3fc6888dde61cb161ef66704a85059f00/orange3_mlflow_export-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8dab82ee2cec99c77a590f3a9c8780cc07dd6b3eff2f5274314fe29a37f12464",
                "md5": "ab34238756508485240f580afbf91a6f",
                "sha256": "a5c7fbf96e4f49940c47738fd308477d7b21622ec683708ff0d79faac83e40e2"
            },
            "downloads": -1,
            "filename": "orange3_mlflow_export-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ab34238756508485240f580afbf91a6f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 11531,
            "upload_time": "2025-09-15T10:31:31",
            "upload_time_iso_8601": "2025-09-15T10:31:31.641705Z",
            "url": "https://files.pythonhosted.org/packages/8d/ab/82ee2cec99c77a590f3a9c8780cc07dd6b3eff2f5274314fe29a37f12464/orange3_mlflow_export-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-15 10:31:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "NIRLab-com",
    "github_project": "mlflow-model-widget",
    "github_not_found": true,
    "lcname": "orange3-mlflow-export"
}
        
Elapsed time: 2.97208s