noetl


Namenoetl JSON
Version 0.1.24 PyPI version JSON
download
home_pageNone
SummaryA framework to build and run data pipelines and workflows.
upload_time2025-07-14 06:05:35
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords etl data pipeline workflow automation
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Not Only ETL

__NoETL__ is an automation framework for data processing and MLOps orchestration.

[![PyPI version](https://badge.fury.io/py/noetl.svg)](https://badge.fury.io/py/noetl)
[![Python Version](https://img.shields.io/pypi/pyversions/noetl.svg)](https://pypi.org/project/noetl/)
[![License](https://img.shields.io/pypi/l/noetl.svg)](https://github.com/noetl/noetl/blob/main/LICENSE)

## Quick Start

### Installation

- Install NoETL from PyPI:
  ```bash
  pip install noetl
  ```

For development or specific versions:
- Install in a virtual environment
  ```bash
  python -m venv .venv
  source .venv/bin/activate
  pip install noetl
  ```
- For Windows users (in PowerShell)
  ```bash
  python -m venv .venv
  Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
  .venv\Scripts\Activate.ps1
  pip install noetl
  ```
- Install a specific version
  ```bash
  pip install noetl==0.1.24
  ```

### Prerequisites

- Python 3.11+
- For full functionality:
  - Postgres database (mandatory, for event log persistent storage and NoETL system metadata)
  - Docker (optional, for containerized development and deployment)

## Basic Usage

After installing NoETL:

### 1. Run the NoETL Server

Start the NoETL server to access the web UI and REST API:

```bash
noetl server
```

This starts the server on http://localhost:8082 by default.

### 2. Using the Command Line

NoETL has a command-line interface for executing playbooks:

- Register a playbook in the catalog
```bash
noetl playbook --register ./<path to playbook folder>/playbook.yaml
```
- Execute a playbook from the catalog
```bash
noetl playbook --execute --path "workflows/example/playbook"
```
- Execute a playbook directly
```bash
noetl agent -f ./<path to playbook folder>/playbook.yaml
```

### 3. Docker Deployment

For containerized deployment:

```bash
docker pull noetl/noetl:latest
docker run -p 8082:8082 noetl/noetl:latest
```

## Workflow DSL Structure

NoETL uses a declarative YAML-based Domain Specific Language (DSL) for defining workflows. The key components of a NoETL playbook include:

- **Metadata**: Version, path, and description of the playbook
- **Workload**: Input data and parameters for the workflow
- **Workflow**: A list of steps that make up the workflow, where each step is defined with `step: step_name`, including:
  - **Steps**: Individual operations in the workflow
  - **Tasks**: Actions performed at each step (HTTP requests, database operations, Python code)
  - **Transitions**: Rules for moving between steps
  - **Conditions**: Logic for branching the workflow
- **Workbook**: Reusable task definitions that can be called from workflow steps, including:
  - **Task Types**: Python, HTTP, DuckDB, PostgreSQL, Secret.
  - **Parameters**: Input parameters for the tasks
  - **Code**: Implementation of the tasks

For examples of NoETL playbooks and detailed explanations, see the [Examples Guide](https://github.com/noetl/noetl/blob/master/docs/examples.md).

To run a playbook:

```bash
noetl agent -f path/to/playbook.yaml
```

## Documentation

For more detailed information, please refer to the following documentation:

> **Note:**  
> When installed from PyPI, the `docs` folder is included in your local package.  
> You can find all documentation files in the `docs/` directory of your installed package.

### Getting Started
- [Installation Guide](https://github.com/noetl/noetl/blob/master/docs/installation.md) - Installation instructions
- [CLI Usage Guide](https://github.com/noetl/noetl/blob/master/docs/cli_usage.md) - Commandline interface usage
- [API Usage Guide](https://github.com/noetl/noetl/blob/master/docs/api_usage.md) - REST API usage
- [Docker Usage Guide](https://github.com/noetl/noetl/blob/master/docs/docker_usage.md) - Docker deployment

### Core Concepts
- [Playbook Structure](https://github.com/noetl/noetl/blob/master/docs/playbook_structure.md) - Structure of NoETL playbooks
- [Workflow Tasks](https://github.com/noetl/noetl/blob/master/docs/action_type.md) - Action types and parameters
- [Environment Configuration](https://github.com/noetl/noetl/blob/master/docs/environment_variables.md) - Setting up environment variables


### Advanced Examples

NoETL includes several example playbooks that demonstrate more advanced capabilities:

- **Weather API Integration** - Fetches and processes weather data from external APIs
- **Database Operations** - Demonstrates Postgres and DuckDB integration
- **Google Cloud Storage** - Shows secure cloud storage operations with Google Cloud
- **Secrets Management** - Illustrates secure handling of credentials and sensitive data
- **Multi-Playbook Workflows** - Demonstrates complex workflow orchestration

For detailed examples, see the [Examples Guide](https://github.com/noetl/noetl/blob/master/docs/examples.md).

## Development

For information about contributing to NoETL or building from source:

- [Development Guide](https://github.com/noetl/noetl/blob/master/docs/development.md) - Setting up a development environment
- [PyPI Publishing Guide](https://github.com/noetl/noetl/blob/master/docs/pypi_manual.md) - Building and publishing to PyPI

## Community & Support

- **GitHub Issues**: [Report bugs or request features](https://github.com/noetl/noetl/issues)
- **Documentation**: [Full documentation](https://noetl.io/docs)
- **Website**: [https://noetl.io](https://noetl.io)

## License

NoETL is released under the MIT License. See the [LICENSE](LICENSE) file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "noetl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "etl, data, pipeline, workflow, automation",
    "author": null,
    "author_email": "Kadyapam <182583029+kadyapam@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/74/88/d7d42a3be982179c119369f310e5e50265c36bc6e9c66dab43e4461fdae3/noetl-0.1.24.tar.gz",
    "platform": null,
    "description": "# Not Only ETL\n\n__NoETL__ is an automation framework for data processing and MLOps orchestration.\n\n[![PyPI version](https://badge.fury.io/py/noetl.svg)](https://badge.fury.io/py/noetl)\n[![Python Version](https://img.shields.io/pypi/pyversions/noetl.svg)](https://pypi.org/project/noetl/)\n[![License](https://img.shields.io/pypi/l/noetl.svg)](https://github.com/noetl/noetl/blob/main/LICENSE)\n\n## Quick Start\n\n### Installation\n\n- Install NoETL from PyPI:\n  ```bash\n  pip install noetl\n  ```\n\nFor development or specific versions:\n- Install in a virtual environment\n  ```bash\n  python -m venv .venv\n  source .venv/bin/activate\n  pip install noetl\n  ```\n- For Windows users (in PowerShell)\n  ```bash\n  python -m venv .venv\n  Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass\n  .venv\\Scripts\\Activate.ps1\n  pip install noetl\n  ```\n- Install a specific version\n  ```bash\n  pip install noetl==0.1.24\n  ```\n\n### Prerequisites\n\n- Python 3.11+\n- For full functionality:\n  - Postgres database (mandatory, for event log persistent storage and NoETL system metadata)\n  - Docker (optional, for containerized development and deployment)\n\n## Basic Usage\n\nAfter installing NoETL:\n\n### 1. Run the NoETL Server\n\nStart the NoETL server to access the web UI and REST API:\n\n```bash\nnoetl server\n```\n\nThis starts the server on http://localhost:8082 by default.\n\n### 2. Using the Command Line\n\nNoETL has a command-line interface for executing playbooks:\n\n- Register a playbook in the catalog\n```bash\nnoetl playbook --register ./<path to playbook folder>/playbook.yaml\n```\n- Execute a playbook from the catalog\n```bash\nnoetl playbook --execute --path \"workflows/example/playbook\"\n```\n- Execute a playbook directly\n```bash\nnoetl agent -f ./<path to playbook folder>/playbook.yaml\n```\n\n### 3. Docker Deployment\n\nFor containerized deployment:\n\n```bash\ndocker pull noetl/noetl:latest\ndocker run -p 8082:8082 noetl/noetl:latest\n```\n\n## Workflow DSL Structure\n\nNoETL uses a declarative YAML-based Domain Specific Language (DSL) for defining workflows. The key components of a NoETL playbook include:\n\n- **Metadata**: Version, path, and description of the playbook\n- **Workload**: Input data and parameters for the workflow\n- **Workflow**: A list of steps that make up the workflow, where each step is defined with `step: step_name`, including:\n  - **Steps**: Individual operations in the workflow\n  - **Tasks**: Actions performed at each step (HTTP requests, database operations, Python code)\n  - **Transitions**: Rules for moving between steps\n  - **Conditions**: Logic for branching the workflow\n- **Workbook**: Reusable task definitions that can be called from workflow steps, including:\n  - **Task Types**: Python, HTTP, DuckDB, PostgreSQL, Secret.\n  - **Parameters**: Input parameters for the tasks\n  - **Code**: Implementation of the tasks\n\nFor examples of NoETL playbooks and detailed explanations, see the [Examples Guide](https://github.com/noetl/noetl/blob/master/docs/examples.md).\n\nTo run a playbook:\n\n```bash\nnoetl agent -f path/to/playbook.yaml\n```\n\n## Documentation\n\nFor more detailed information, please refer to the following documentation:\n\n> **Note:**  \n> When installed from PyPI, the `docs` folder is included in your local package.  \n> You can find all documentation files in the `docs/` directory of your installed package.\n\n### Getting Started\n- [Installation Guide](https://github.com/noetl/noetl/blob/master/docs/installation.md) - Installation instructions\n- [CLI Usage Guide](https://github.com/noetl/noetl/blob/master/docs/cli_usage.md) - Commandline interface usage\n- [API Usage Guide](https://github.com/noetl/noetl/blob/master/docs/api_usage.md) - REST API usage\n- [Docker Usage Guide](https://github.com/noetl/noetl/blob/master/docs/docker_usage.md) - Docker deployment\n\n### Core Concepts\n- [Playbook Structure](https://github.com/noetl/noetl/blob/master/docs/playbook_structure.md) - Structure of NoETL playbooks\n- [Workflow Tasks](https://github.com/noetl/noetl/blob/master/docs/action_type.md) - Action types and parameters\n- [Environment Configuration](https://github.com/noetl/noetl/blob/master/docs/environment_variables.md) - Setting up environment variables\n\n\n### Advanced Examples\n\nNoETL includes several example playbooks that demonstrate more advanced capabilities:\n\n- **Weather API Integration** - Fetches and processes weather data from external APIs\n- **Database Operations** - Demonstrates Postgres and DuckDB integration\n- **Google Cloud Storage** - Shows secure cloud storage operations with Google Cloud\n- **Secrets Management** - Illustrates secure handling of credentials and sensitive data\n- **Multi-Playbook Workflows** - Demonstrates complex workflow orchestration\n\nFor detailed examples, see the [Examples Guide](https://github.com/noetl/noetl/blob/master/docs/examples.md).\n\n## Development\n\nFor information about contributing to NoETL or building from source:\n\n- [Development Guide](https://github.com/noetl/noetl/blob/master/docs/development.md) - Setting up a development environment\n- [PyPI Publishing Guide](https://github.com/noetl/noetl/blob/master/docs/pypi_manual.md) - Building and publishing to PyPI\n\n## Community & Support\n\n- **GitHub Issues**: [Report bugs or request features](https://github.com/noetl/noetl/issues)\n- **Documentation**: [Full documentation](https://noetl.io/docs)\n- **Website**: [https://noetl.io](https://noetl.io)\n\n## License\n\nNoETL is released under the MIT License. See the [LICENSE](LICENSE) file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A framework to build and run data pipelines and workflows.",
    "version": "0.1.24",
    "project_urls": {
        "Homepage": "https://noetl.io",
        "Issues": "https://github.com/noetl/noetl/issues",
        "Repository": "https://github.com/noetl/noetl"
    },
    "split_keywords": [
        "etl",
        " data",
        " pipeline",
        " workflow",
        " automation"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "52fd5b138d74e7c249857a71ebf79b904e5f893eed17402f2477f43b058b01e4",
                "md5": "5bbf3ac03384022c33cd6a75ff061f04",
                "sha256": "984d0946118f952546bc44987b43d909abb7594beb8c1ebdeb2ff9d20bdbba2b"
            },
            "downloads": -1,
            "filename": "noetl-0.1.24-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5bbf3ac03384022c33cd6a75ff061f04",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 279498,
            "upload_time": "2025-07-14T06:05:33",
            "upload_time_iso_8601": "2025-07-14T06:05:33.530546Z",
            "url": "https://files.pythonhosted.org/packages/52/fd/5b138d74e7c249857a71ebf79b904e5f893eed17402f2477f43b058b01e4/noetl-0.1.24-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7488d7d42a3be982179c119369f310e5e50265c36bc6e9c66dab43e4461fdae3",
                "md5": "f12db1989ebe6b1d13a097a7bf496457",
                "sha256": "2cc6dddf7bd12621c9abff663f860ebd96d5d3824e9742a296d2df01807260ce"
            },
            "downloads": -1,
            "filename": "noetl-0.1.24.tar.gz",
            "has_sig": false,
            "md5_digest": "f12db1989ebe6b1d13a097a7bf496457",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 334337,
            "upload_time": "2025-07-14T06:05:35",
            "upload_time_iso_8601": "2025-07-14T06:05:35.044507Z",
            "url": "https://files.pythonhosted.org/packages/74/88/d7d42a3be982179c119369f310e5e50265c36bc6e9c66dab43e4461fdae3/noetl-0.1.24.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-14 06:05:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "noetl",
    "github_project": "noetl",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "noetl"
}
        
Elapsed time: 0.44677s