# Tinyfan
Tinyfan: Minimalist Data Pipeline Kit - Generate Argo Workflows with Python
# Features
* Generate Argo Workflows manifests from Python data pipeline definitions.
* Ease of Use and highly extendable
* Intuitive data model abstraction: let Argo handle orchestration—we focus on the data.
* Argo Workflows is notably lightweight and powerful – and so are we!
* Enhanced DevOps Experience: easly testable, Cloud Native and GitOps-ready.
# Our Goal
* **Minimize mental overhead** when building data pipelines.
# Not Our Goal
* **Full-featured orchestration framework:** We don't aim to be a battery-powered, comprehensive data pipeline orchestration solution.
No databases, web servers, or controllers—just a data pipeline compiler. Let's Algo Workflows handle all the complexity.
# Installation
```
# Requires Python 3.10+
pipx install tinyfan
```
# Tiny Example
```python
# main.py
# Asset definitions
from tinyfan import asset
@asset(schedule="*/3 * * * *")
def world() -> str:
return "world"
@asset()
def greeting(world: str):
print("hello " + world)
```
```shell
# Apply the changes to argo workflow
tinyfan template main.py | kubectl apply -f -
```
# Real World Example (still tiny though!)
Comming soon
# License
This project is licensed under the MIT License.
Raw data
{
"_id": null,
"home_page": null,
"name": "tinyfan",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "argo-workflow, pipeline, tinyfan, workflow",
"author": null,
"author_email": "eunchuldev <eunchulsong@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/e6/80/e18e984781383adbdeb4362b7e5509e5fd505b817f3fd5acc017265da580/tinyfan-0.1.2.tar.gz",
"platform": null,
"description": "# Tinyfan\n\nTinyfan: Minimalist Data Pipeline Kit - Generate Argo Workflows with Python\n\n# Features\n\n* Generate Argo Workflows manifests from Python data pipeline definitions.\n* Ease of Use and highly extendable\n* Intuitive data model abstraction: let Argo handle orchestration\u2014we focus on the data.\n* Argo Workflows is notably lightweight and powerful \u2013 and so are we!\n* Enhanced DevOps Experience: easly testable, Cloud Native and GitOps-ready.\n\n# Our Goal\n\n* **Minimize mental overhead** when building data pipelines.\n\n# Not Our Goal\n\n* **Full-featured orchestration framework:** We don't aim to be a battery-powered, comprehensive data pipeline orchestration solution. \n No databases, web servers, or controllers\u2014just a data pipeline compiler. Let's Algo Workflows handle all the complexity.\n\n# Installation\n\n```\n# Requires Python 3.10+\npipx install tinyfan\n```\n\n# Tiny Example\n\n```python\n# main.py\n\n# Asset definitions\n\nfrom tinyfan import asset\n\n@asset(schedule=\"*/3 * * * *\")\ndef world() -> str:\n return \"world\"\n\n@asset()\ndef greeting(world: str):\n print(\"hello \" + world)\n```\n\n```shell\n# Apply the changes to argo workflow\n\ntinyfan template main.py | kubectl apply -f -\n```\n\n# Real World Example (still tiny though!)\n\nComming soon\n\n\n\n# License\n\nThis project is licensed under the MIT License.\n",
"bugtrack_url": null,
"license": null,
"summary": "Tiny Argo Workflows python devkit",
"version": "0.1.2",
"project_urls": {
"Documentation": "https://github.com/eunchuldev/tinyfan#readme",
"Issues": "https://github.com/eunchuldev/tinyfan/issues",
"Source": "https://github.com/eunchuldev/tinyfan"
},
"split_keywords": [
"argo-workflow",
" pipeline",
" tinyfan",
" workflow"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7e3577cfc24277f3ec97fd676876773d253a46717f31a59b45950e1ec7d96372",
"md5": "ef60b4e028c9f36c8a66b98954f2ea26",
"sha256": "315f7ce9b38fef290305593072041f2caff5869d2b9a17c9ece5e040011ce693"
},
"downloads": -1,
"filename": "tinyfan-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ef60b4e028c9f36c8a66b98954f2ea26",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 16843,
"upload_time": "2025-01-09T18:03:56",
"upload_time_iso_8601": "2025-01-09T18:03:56.308718Z",
"url": "https://files.pythonhosted.org/packages/7e/35/77cfc24277f3ec97fd676876773d253a46717f31a59b45950e1ec7d96372/tinyfan-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e680e18e984781383adbdeb4362b7e5509e5fd505b817f3fd5acc017265da580",
"md5": "1960d456e4166e7bf077a54bc0b0dae5",
"sha256": "d8e4732c06b42e3fb5fc18fefdc77694086b9d5d3903a77b6a3de7ce78969736"
},
"downloads": -1,
"filename": "tinyfan-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "1960d456e4166e7bf077a54bc0b0dae5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 48931,
"upload_time": "2025-01-09T18:03:57",
"upload_time_iso_8601": "2025-01-09T18:03:57.372531Z",
"url": "https://files.pythonhosted.org/packages/e6/80/e18e984781383adbdeb4362b7e5509e5fd505b817f3fd5acc017265da580/tinyfan-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-09 18:03:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "eunchuldev",
"github_project": "tinyfan#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tinyfan"
}