# Tasker
[![PyPI version](https://badge.fury.io/py/tasker-python.svg)](https://badge.fury.io/py/tasker-python)
![Supported versions](https://img.shields.io/badge/python-3.10+-blue.svg)
[![Downloads](https://static.pepy.tech/badge/tasker-python)](https://pepy.tech/project/tasker-python)
[![license](https://img.shields.io/github/license/zigai/tasker.svg)](https://github.com/zigai/tasker/blob/main/LICENSE)
Simple task automation framework for Python, integrating [Rocketry](https://github.com/Miksus/rocketry) for advanced scheduling and [Apprise](https://github.com/caronc/apprise) for multi-platform notifications. Wraps Python functions and shell commands into easily manageable and schedulable units.
## Installation
#### From PyPi
```
pip install tasker-python
```
#### From source
```
pip install git+https://github.com/zigai/tasker.git
```
## Example
```python
from tasker import Channel, CommandLineTask
task = CommandLineTask(
name="hello-world",
command="echo 'Hello World!'",
notification_channels=[
Channel("discord://...", events=["start", "success", "info", "fail"]),
],
stdout=True, # display stdout in notifications
)
task.exec() # run once
from tasker.scheduler import TaskScheduler, every
scheduler = TaskScheduler()
scheduler.schedule_task(task, every("10 seconds")) # run every 10 seconds
scheduler.run()
```
## License
[MIT License](https://github.com/zigai/tasker/blob/master/LICENSE)
Raw data
{
"_id": null,
"home_page": "https://github.com/zigai/tasker",
"name": "tasker-python",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "tasker, python, task scheduler, scheduler notifications, cron notifications, rocketry, apprise",
"author": "\u017diga Ivan\u0161ek",
"author_email": "ziga.ivansek@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/20/2e/3cbfe7210cbd8cc977f13b7bfc6b8af26e6d9286ae062f98273035fe2ed3/tasker_python-0.1.4.tar.gz",
"platform": null,
"description": "# Tasker\n[![PyPI version](https://badge.fury.io/py/tasker-python.svg)](https://badge.fury.io/py/tasker-python)\n![Supported versions](https://img.shields.io/badge/python-3.10+-blue.svg)\n[![Downloads](https://static.pepy.tech/badge/tasker-python)](https://pepy.tech/project/tasker-python)\n[![license](https://img.shields.io/github/license/zigai/tasker.svg)](https://github.com/zigai/tasker/blob/main/LICENSE)\n\nSimple task automation framework for Python, integrating [Rocketry](https://github.com/Miksus/rocketry) for advanced scheduling and [Apprise](https://github.com/caronc/apprise) for multi-platform notifications. Wraps Python functions and shell commands into easily manageable and schedulable units.\n\n## Installation\n#### From PyPi\n```\npip install tasker-python\n```\n#### From source\n```\npip install git+https://github.com/zigai/tasker.git\n```\n## Example\n```python\nfrom tasker import Channel, CommandLineTask\n\ntask = CommandLineTask(\n name=\"hello-world\",\n command=\"echo 'Hello World!'\",\n notification_channels=[\n Channel(\"discord://...\", events=[\"start\", \"success\", \"info\", \"fail\"]), \n ],\n stdout=True, # display stdout in notifications\n)\n\ntask.exec() # run once\n\nfrom tasker.scheduler import TaskScheduler, every\nscheduler = TaskScheduler()\nscheduler.schedule_task(task, every(\"10 seconds\")) # run every 10 seconds\nscheduler.run()\n\n```\n\n## License\n[MIT License](https://github.com/zigai/tasker/blob/master/LICENSE)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Simple task automation framework for Python, integrating Rocketry for advanced scheduling and Apprise for multi-platform notifications. Wraps Python functions and shell commands into easily manageable and schedulable units.",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/zigai/tasker"
},
"split_keywords": [
"tasker",
" python",
" task scheduler",
" scheduler notifications",
" cron notifications",
" rocketry",
" apprise"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "40e28279531d05994de887d67b296ff4935a3431d9221c03e10c7239b941f1db",
"md5": "c858046569f2b1400346699b12307048",
"sha256": "ded82284f0840c1f691021a34ee59b434fee789b9d14e37f50d1bb976212531b"
},
"downloads": -1,
"filename": "tasker_python-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c858046569f2b1400346699b12307048",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8809,
"upload_time": "2024-10-17T17:03:56",
"upload_time_iso_8601": "2024-10-17T17:03:56.125986Z",
"url": "https://files.pythonhosted.org/packages/40/e2/8279531d05994de887d67b296ff4935a3431d9221c03e10c7239b941f1db/tasker_python-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "202e3cbfe7210cbd8cc977f13b7bfc6b8af26e6d9286ae062f98273035fe2ed3",
"md5": "826e14b35dcc8529c3bfd9531c6e0492",
"sha256": "082edc116ad819aab6706cee944deb3a3159dfa761afa4631b94c04b652c31eb"
},
"downloads": -1,
"filename": "tasker_python-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "826e14b35dcc8529c3bfd9531c6e0492",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7842,
"upload_time": "2024-10-17T17:03:57",
"upload_time_iso_8601": "2024-10-17T17:03:57.496442Z",
"url": "https://files.pythonhosted.org/packages/20/2e/3cbfe7210cbd8cc977f13b7bfc6b8af26e6d9286ae062f98273035fe2ed3/tasker_python-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-17 17:03:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zigai",
"github_project": "tasker",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "apprise",
"specs": [
[
"==",
"1.8.0"
]
]
},
{
"name": "rocketry",
"specs": [
[
"==",
"2.5.1"
]
]
},
{
"name": "stdl",
"specs": [
[
">=",
"0.5.5"
]
]
}
],
"lcname": "tasker-python"
}