framework3


Nameframework3 JSON
Version 1.0.20 PyPI version JSON
download
home_pageNone
SummaryA flexible framework for machine learning pipelines
upload_time2025-09-06 21:00:47
maintainerNone
docs_urlNone
authorManuel Couto Pintos
requires_python<4.0,>=3.11
licenseAGPL-3.0-or-later
keywords machine learning framework pipeline ml ai data science
VCS
bugtrack_url
requirements typeguard multimethod pyspark fastapi pandas torch scipy rich boto3 scikit-learn cloudpickle tqdm nltk transformers gensim wandb optuna sentence-transformers
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LabChain [![test_on_push](https://github.com/manucouto1/LabChain/actions/workflows/test_on_push_pull.yml/badge.svg)](https://github.com/manucouto1/LabChain/actions/workflows/test_on_push_pull.yml)
LabChain is an innovative platform designed to simplify and accelerate the development of machine learning models. It provides data scientists and machine learning engineers with a flexible and powerful tool to create, experiment with, and deploy models efficiently and in a structured manner. [https://manucouto1.github.io/LabChain](https://manucouto1.github.io/LabChain)

## Key Features

- Modular and flexible architecture
- Customizable pipelines for ML workflows
- Extensible plugin system for filters, metrics, and storage
- Support for distributed processing with MapReduce
- Integrated model evaluation and optimization tools

## Diagram
```mermaid
      classDiagram
      class BasePlugin {
            <<abstract>>
            +item_dump() : Dict
            +build_from_dump(dump_dict: Dict, factory: BaseFactory) : BasePlugin
      }

      class BaseFilter {
            <<abstract>>
            +fit(x: XYData, y: XYData|None) : float|None
            +predict(x: XYData) : XYData
            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
      }

      class BasePipeline {
            <<abstract>>
            -filters: List[BaseFilter]
            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
            +init()
            +get_types() : List[Type[BaseFilter]]
            +optimizer(optimizer: BaseOptimizer) : BaseOptimizer|None
            +splitter(splitter: BaseSplitter) : BaseSplitter|None
      }

      class BaseSplitter {
            <<abstract>>
            -pipeline: BasePipeline
            +split(pipeline: BasePipeline)
            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]
            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
            +unwrap() : BasePipeline
      }

      class BaseOptimizer {
            <<abstract>>
            -pipeline: BasePipeline
            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None
            +optimize(pipeline: BasePipeline)
      }

      class BaseMetric {
            <<abstract>>
            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : float
      }

      class BaseStorer {
            <<abstract>>
            +get_root_path() : str
            +upload_file(file_path: str, destination_path: str)
            +list_stored_files() : List[str]
            +get_file_by_hashcode(hashcode: str) : str
            +check_if_exists(file_path: str) : bool
            +download_file(file_path: str, destination_path: str)
            +delete_file(file_path: str)
      }

      class ParallelPipeline {
            <<abstract>>
      }

      class SequentialPipeline {
            <<abstract>>
      }

      class MonoPipeline {
      }

      class LocalThreadPipeline {
      }

      class HPCPipeline {
      }

      class F3Pipeline {
      }

      class KFoldSplitter {
      }

      class OptunaOptimizer {
      }

      class SklearnOptimizer {
      }

      class WandbOptimizer {
      }

      class LocalStorer {
      }

      class S3Storer {
      }

      class Container {
            +bind()
            +get()
      }

      BasePlugin <|-- BaseFilter
      BasePlugin <|-- BaseMetric
      BaseFilter <|-- BasePipeline
      BaseFilter <|-- BaseSplitter
      BaseFilter <|-- BaseOptimizer
      BasePlugin <|-- BaseStorer
      BasePipeline <|-- ParallelPipeline
      BasePipeline <|-- SequentialPipeline
      ParallelPipeline <|-- MonoPipeline
      ParallelPipeline <|-- LocalThreadPipeline
      ParallelPipeline <|-- HPCPipeline
      SequentialPipeline <|-- F3Pipeline
      BaseSplitter <|-- KFoldSplitter
      BaseOptimizer <|-- OptunaOptimizer
      BaseOptimizer <|-- SklearnOptimizer
      BaseOptimizer <|-- WandbOptimizer
      BaseStorer <|-- LocalStorer
      BaseStorer <|-- S3Storer

      BasePipeline "1" *-- "1..*" BaseFilter : contains
      BaseSplitter "1" *-- "1" BaseFilter : contains
      BaseOptimizer "1" *-- "1" BaseFilter : contains
      BasePipeline "1" *-- "0..*" BaseMetric : uses

      Container --> BasePlugin : contains
```

## Prerequisites

Before installing LabChain, ensure you have the following prerequisites:

1. Python 3.11 or higher
2. pip (Python package installer)

## Installation Options

You have two options to install LabChain:

### Option 1: Install from PyPI

The easiest way to install LabChain is directly from PyPI using pip:

```bash
pip install framework3
```

This will install the latest stable version of LabChain and its dependencies.

### Option 2: Install from Source

2. Clone the repository:
   ```
   git clone https://github.com/manucouto1/LabChain.git
   ```

3. Navigate to the project directory:
   ```
   cd LabChain
   ```

4. Install the dependencies using pip:
   ```
   pip install -r requirements.txt
   ```

## Basic Usage

Here's a basic example of how to use LabChain:

```python
from framework3.plugins.pipelines import F3Pipeline
from framework3.plugins.filters import KnnFilter
from framework3.plugins.metrics import F1, Precision, Recall

# Create a pipeline
pipeline = F3Pipeline(
    plugins=[KnnFilter()],
    metrics=[F1(), Precision(), Recall()]
)

# Fit the model
pipeline.fit(X_train, y_train)

# Make predictions
predictions = pipeline.predict(X_test)

# Evaluate the model
evaluation = pipeline.evaluate(X_test, y_test, y_pred=predictions)
print(evaluation)
```

## Documentation

For more detailed information on how to use Framework3, check out our complete documentation at:

[https://manucouto1.github.io/LabChain](https://manucouto1.github.io/LabChain)

## Contributing

Contributions are welcome. Please read our contribution guidelines before submitting pull requests.

## License

This project is licensed under the AGPL-3.0 license. See the `LICENSE` file for more details.

## Contact

If you have any questions or suggestions, don't hesitate to open an issue in this repository or contact the development team.

---

Thank you for your interest in LabChain! We hope this tool will be useful in your machine learning projects.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "framework3",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.11",
    "maintainer_email": null,
    "keywords": "machine learning, framework, pipeline, ML, AI, data science",
    "author": "Manuel Couto Pintos",
    "author_email": "manuel.couto.pintos@usc.es",
    "download_url": "https://files.pythonhosted.org/packages/87/8c/909106a49600a4b0ca7bffa0b38f417e9e1f43cce663b72cea04d14f275f/framework3-1.0.20.tar.gz",
    "platform": null,
    "description": "# LabChain [![test_on_push](https://github.com/manucouto1/LabChain/actions/workflows/test_on_push_pull.yml/badge.svg)](https://github.com/manucouto1/LabChain/actions/workflows/test_on_push_pull.yml)\nLabChain is an innovative platform designed to simplify and accelerate the development of machine learning models. It provides data scientists and machine learning engineers with a flexible and powerful tool to create, experiment with, and deploy models efficiently and in a structured manner. [https://manucouto1.github.io/LabChain](https://manucouto1.github.io/LabChain)\n\n## Key Features\n\n- Modular and flexible architecture\n- Customizable pipelines for ML workflows\n- Extensible plugin system for filters, metrics, and storage\n- Support for distributed processing with MapReduce\n- Integrated model evaluation and optimization tools\n\n## Diagram\n```mermaid\n      classDiagram\n      class BasePlugin {\n            <<abstract>>\n            +item_dump() : Dict\n            +build_from_dump(dump_dict: Dict, factory: BaseFactory) : BasePlugin\n      }\n\n      class BaseFilter {\n            <<abstract>>\n            +fit(x: XYData, y: XYData|None) : float|None\n            +predict(x: XYData) : XYData\n            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]\n      }\n\n      class BasePipeline {\n            <<abstract>>\n            -filters: List[BaseFilter]\n            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]\n            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None\n            +init()\n            +get_types() : List[Type[BaseFilter]]\n            +optimizer(optimizer: BaseOptimizer) : BaseOptimizer|None\n            +splitter(splitter: BaseSplitter) : BaseSplitter|None\n      }\n\n      class BaseSplitter {\n            <<abstract>>\n            -pipeline: BasePipeline\n            +split(pipeline: BasePipeline)\n            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : Dict[str, Any]\n            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None\n            +unwrap() : BasePipeline\n      }\n\n      class BaseOptimizer {\n            <<abstract>>\n            -pipeline: BasePipeline\n            +start(x: XYData, y: XYData|None, X_: XYData|None) : XYData|None\n            +optimize(pipeline: BasePipeline)\n      }\n\n      class BaseMetric {\n            <<abstract>>\n            +evaluate(x_data: XYData, y_true: XYData|None, y_pred: XYData) : float\n      }\n\n      class BaseStorer {\n            <<abstract>>\n            +get_root_path() : str\n            +upload_file(file_path: str, destination_path: str)\n            +list_stored_files() : List[str]\n            +get_file_by_hashcode(hashcode: str) : str\n            +check_if_exists(file_path: str) : bool\n            +download_file(file_path: str, destination_path: str)\n            +delete_file(file_path: str)\n      }\n\n      class ParallelPipeline {\n            <<abstract>>\n      }\n\n      class SequentialPipeline {\n            <<abstract>>\n      }\n\n      class MonoPipeline {\n      }\n\n      class LocalThreadPipeline {\n      }\n\n      class HPCPipeline {\n      }\n\n      class F3Pipeline {\n      }\n\n      class KFoldSplitter {\n      }\n\n      class OptunaOptimizer {\n      }\n\n      class SklearnOptimizer {\n      }\n\n      class WandbOptimizer {\n      }\n\n      class LocalStorer {\n      }\n\n      class S3Storer {\n      }\n\n      class Container {\n            +bind()\n            +get()\n      }\n\n      BasePlugin <|-- BaseFilter\n      BasePlugin <|-- BaseMetric\n      BaseFilter <|-- BasePipeline\n      BaseFilter <|-- BaseSplitter\n      BaseFilter <|-- BaseOptimizer\n      BasePlugin <|-- BaseStorer\n      BasePipeline <|-- ParallelPipeline\n      BasePipeline <|-- SequentialPipeline\n      ParallelPipeline <|-- MonoPipeline\n      ParallelPipeline <|-- LocalThreadPipeline\n      ParallelPipeline <|-- HPCPipeline\n      SequentialPipeline <|-- F3Pipeline\n      BaseSplitter <|-- KFoldSplitter\n      BaseOptimizer <|-- OptunaOptimizer\n      BaseOptimizer <|-- SklearnOptimizer\n      BaseOptimizer <|-- WandbOptimizer\n      BaseStorer <|-- LocalStorer\n      BaseStorer <|-- S3Storer\n\n      BasePipeline \"1\" *-- \"1..*\" BaseFilter : contains\n      BaseSplitter \"1\" *-- \"1\" BaseFilter : contains\n      BaseOptimizer \"1\" *-- \"1\" BaseFilter : contains\n      BasePipeline \"1\" *-- \"0..*\" BaseMetric : uses\n\n      Container --> BasePlugin : contains\n```\n\n## Prerequisites\n\nBefore installing LabChain, ensure you have the following prerequisites:\n\n1. Python 3.11 or higher\n2. pip (Python package installer)\n\n## Installation Options\n\nYou have two options to install LabChain:\n\n### Option 1: Install from PyPI\n\nThe easiest way to install LabChain is directly from PyPI using pip:\n\n```bash\npip install framework3\n```\n\nThis will install the latest stable version of LabChain and its dependencies.\n\n### Option 2: Install from Source\n\n2. Clone the repository:\n   ```\n   git clone https://github.com/manucouto1/LabChain.git\n   ```\n\n3. Navigate to the project directory:\n   ```\n   cd LabChain\n   ```\n\n4. Install the dependencies using pip:\n   ```\n   pip install -r requirements.txt\n   ```\n\n## Basic Usage\n\nHere's a basic example of how to use LabChain:\n\n```python\nfrom framework3.plugins.pipelines import F3Pipeline\nfrom framework3.plugins.filters import KnnFilter\nfrom framework3.plugins.metrics import F1, Precision, Recall\n\n# Create a pipeline\npipeline = F3Pipeline(\n    plugins=[KnnFilter()],\n    metrics=[F1(), Precision(), Recall()]\n)\n\n# Fit the model\npipeline.fit(X_train, y_train)\n\n# Make predictions\npredictions = pipeline.predict(X_test)\n\n# Evaluate the model\nevaluation = pipeline.evaluate(X_test, y_test, y_pred=predictions)\nprint(evaluation)\n```\n\n## Documentation\n\nFor more detailed information on how to use Framework3, check out our complete documentation at:\n\n[https://manucouto1.github.io/LabChain](https://manucouto1.github.io/LabChain)\n\n## Contributing\n\nContributions are welcome. Please read our contribution guidelines before submitting pull requests.\n\n## License\n\nThis project is licensed under the AGPL-3.0 license. See the `LICENSE` file for more details.\n\n## Contact\n\nIf you have any questions or suggestions, don't hesitate to open an issue in this repository or contact the development team.\n\n---\n\nThank you for your interest in LabChain! We hope this tool will be useful in your machine learning projects.\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0-or-later",
    "summary": "A flexible framework for machine learning pipelines",
    "version": "1.0.20",
    "project_urls": {
        "Documentation": "https://manucouto1.github.io/framework3/",
        "Homepage": "https://github.com/manucouto1/framework3",
        "Repository": "https://github.com/manucouto1/framework3.git"
    },
    "split_keywords": [
        "machine learning",
        " framework",
        " pipeline",
        " ml",
        " ai",
        " data science"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f8b1313e68da838d9a5578253d949e1a8181e3e92c93dcf0c4e759242f0d4c62",
                "md5": "f112fdebfd100e69ac6ffc83c871426b",
                "sha256": "a16b058214c25678d86db427c2687339068ba3da03c4b398e65f3e9ff491f946"
            },
            "downloads": -1,
            "filename": "framework3-1.0.20-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f112fdebfd100e69ac6ffc83c871426b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.11",
            "size": 117374,
            "upload_time": "2025-09-06T21:00:46",
            "upload_time_iso_8601": "2025-09-06T21:00:46.084183Z",
            "url": "https://files.pythonhosted.org/packages/f8/b1/313e68da838d9a5578253d949e1a8181e3e92c93dcf0c4e759242f0d4c62/framework3-1.0.20-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "878c909106a49600a4b0ca7bffa0b38f417e9e1f43cce663b72cea04d14f275f",
                "md5": "3be1e9c6209dfbc60fd90269354c3040",
                "sha256": "a61a74608d53224821301c441912e5bb15ac1cec0acfd67a536855e3deba43a4"
            },
            "downloads": -1,
            "filename": "framework3-1.0.20.tar.gz",
            "has_sig": false,
            "md5_digest": "3be1e9c6209dfbc60fd90269354c3040",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.11",
            "size": 77090,
            "upload_time": "2025-09-06T21:00:47",
            "upload_time_iso_8601": "2025-09-06T21:00:47.393069Z",
            "url": "https://files.pythonhosted.org/packages/87/8c/909106a49600a4b0ca7bffa0b38f417e9e1f43cce663b72cea04d14f275f/framework3-1.0.20.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-06 21:00:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "manucouto1",
    "github_project": "framework3",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "typeguard",
            "specs": [
                [
                    "==",
                    "4.4.1"
                ]
            ]
        },
        {
            "name": "multimethod",
            "specs": [
                [
                    "==",
                    "1.12"
                ]
            ]
        },
        {
            "name": "pyspark",
            "specs": [
                [
                    "==",
                    "3.5.3"
                ]
            ]
        },
        {
            "name": "fastapi",
            "specs": [
                [
                    "==",
                    "0.115.5"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "torch",
            "specs": [
                [
                    "==",
                    "2.5.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    "==",
                    "1.13.1"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "13.9.4"
                ]
            ]
        },
        {
            "name": "boto3",
            "specs": [
                [
                    "==",
                    "1.35.73"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    "==",
                    "1.5.2"
                ]
            ]
        },
        {
            "name": "cloudpickle",
            "specs": [
                [
                    "==",
                    "3.1.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.67.1"
                ]
            ]
        },
        {
            "name": "nltk",
            "specs": [
                [
                    "==",
                    "3.9.1"
                ]
            ]
        },
        {
            "name": "transformers",
            "specs": [
                [
                    "==",
                    "4.46.3"
                ]
            ]
        },
        {
            "name": "gensim",
            "specs": [
                [
                    "==",
                    "4.3.3"
                ]
            ]
        },
        {
            "name": "wandb",
            "specs": [
                [
                    "==",
                    "0.18.7"
                ]
            ]
        },
        {
            "name": "optuna",
            "specs": [
                [
                    "==",
                    "4.2.1"
                ]
            ]
        },
        {
            "name": "sentence-transformers",
            "specs": [
                [
                    "==",
                    "4.0.2"
                ]
            ]
        }
    ],
    "lcname": "framework3"
}
        
Elapsed time: 3.09715s