# Powerchord: Concurrent CLI task runner
[![Poetry](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/githuib/powerchord/master/assets/logo.json)](https://pypi.org/project/powerchord)
[![PyPI - Version](https://img.shields.io/pypi/v/powerchord)](https://pypi.org/project/powerchord/#history)
[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/powerchord)](https://pypi.org/project/powerchord)
## Installation
```commandline
pip install powerchord
```
## Usage
Run a number of tasks:
```commandline
$ powerchord -t "ruff check ." pytest mypy
✔ ruff check . 21.075 ms
✔ mypy 166.433 ms
✔ pytest 187.096 ms
```
Tasks can be labeled by passing them as NAME=COMMAND values:
```commandline
$ powerchord -t lint="ruff check ." test=pytest typing=mypy
To do:
• lint ruff check .
• test pytest
• typing mypy
Results:
✔ lint 48.452 ms
✔ typing 202.403 ms
✔ test 286.231 ms
```
Verbosity can be specified for all output, for successful tasks and for failed tasks by setting log levels:
```commandline
$ powerchord -t "ruff chekc ." pytest mypy -l all=info success=info fail=error
✘ ruff chekc . 126.852 ms
chekc:1:1: E902 No such file or directory (os error 2)
Found 1 error.
✔ pytest 255.197 ms
.. [100%]
2 passed in 0.03s
✔ mypy 542.490 ms
Success: no issues found in 11 source files
✘ Failed tasks: ['ruff chekc .']
```
For all options see the help:
```commandline
powerchord -h
```
Config can also be specified in `pyproject.toml`:
Tasks:
```toml
[tool.powerchord]
tasks = ["command --arg", "...", "..."]
```
Labeled tasks:
```toml
[tool.powerchord.tasks]
task = "command --foo bar /path/to/happiness"
other-task = "..."
you-get-the-idea = "..."
```
Log levels:
```toml
[tool.powerchord.log_levels]
all = "info" # "debug" | "info" | "warning" | "error" | "critical" | ""
success = "" # log level of successful task output
fail = "error" # log level of failed task output
```
Raw data
{
"_id": null,
"home_page": "https://github.com/githuib/powerchord",
"name": "powerchord",
"maintainer": "Huib Piguillet",
"docs_url": null,
"requires_python": ">=3.11,<4.0",
"maintainer_email": "",
"keywords": "task runner,cli utility,concurrency",
"author": "Huib Piguillet",
"author_email": "huib@proton.me",
"download_url": "https://files.pythonhosted.org/packages/88/27/9b7fcbb93f37cbf8955a065024b48abb38ecc9582035347afff6d9ad76dd/powerchord-0.1.4.tar.gz",
"platform": null,
"description": "# Powerchord: Concurrent CLI task runner\n\n[![Poetry](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/githuib/powerchord/master/assets/logo.json)](https://pypi.org/project/powerchord)\n[![PyPI - Version](https://img.shields.io/pypi/v/powerchord)](https://pypi.org/project/powerchord/#history)\n[![PyPI - Python Versions](https://img.shields.io/pypi/pyversions/powerchord)](https://pypi.org/project/powerchord)\n\n## Installation\n\n```commandline\npip install powerchord\n```\n\n## Usage\n\nRun a number of tasks:\n\n```commandline\n$ powerchord -t \"ruff check .\" pytest mypy\n\u2714 ruff check . 21.075 ms\n\u2714 mypy 166.433 ms\n\u2714 pytest 187.096 ms\n```\n\nTasks can be labeled by passing them as NAME=COMMAND values:\n\n```commandline\n$ powerchord -t lint=\"ruff check .\" test=pytest typing=mypy\nTo do:\n\u2022 lint ruff check .\n\u2022 test pytest\n\u2022 typing mypy\n\nResults:\n\u2714 lint 48.452 ms\n\u2714 typing 202.403 ms\n\u2714 test 286.231 ms\n```\n\nVerbosity can be specified for all output, for successful tasks and for failed tasks by setting log levels:\n\n```commandline\n$ powerchord -t \"ruff chekc .\" pytest mypy -l all=info success=info fail=error\n\u2718 ruff chekc . 126.852 ms\nchekc:1:1: E902 No such file or directory (os error 2)\nFound 1 error.\n\n\u2714 pytest 255.197 ms\n.. [100%]\n2 passed in 0.03s\n\n\u2714 mypy 542.490 ms\nSuccess: no issues found in 11 source files\n\n\n\u2718 Failed tasks: ['ruff chekc .']\n```\n\nFor all options see the help:\n\n```commandline\npowerchord -h\n```\n\nConfig can also be specified in `pyproject.toml`:\n\nTasks:\n```toml\n[tool.powerchord]\ntasks = [\"command --arg\", \"...\", \"...\"]\n```\n\nLabeled tasks:\n```toml\n[tool.powerchord.tasks]\ntask = \"command --foo bar /path/to/happiness\"\nother-task = \"...\"\nyou-get-the-idea = \"...\"\n```\n\nLog levels:\n```toml\n[tool.powerchord.log_levels]\nall = \"info\" # \"debug\" | \"info\" | \"warning\" | \"error\" | \"critical\" | \"\"\nsuccess = \"\" # log level of successful task output\nfail = \"error\" # log level of failed task output \n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Concurrent CLI task runner",
"version": "0.1.4",
"project_urls": {
"Homepage": "https://github.com/githuib/powerchord",
"Repository": "https://github.com/githuib/powerchord"
},
"split_keywords": [
"task runner",
"cli utility",
"concurrency"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b6fa570b6fe88fd1428063abec6b940ea6b02a4888695337f0bb33cd2369c09f",
"md5": "d5e9cae2dc54405cebacfe32248ab502",
"sha256": "ee8300df6836a65d033b925ae156ab643e4f5efdde8bf08f8a4d96ebeee97b42"
},
"downloads": -1,
"filename": "powerchord-0.1.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d5e9cae2dc54405cebacfe32248ab502",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4.0",
"size": 9070,
"upload_time": "2024-02-26T01:45:35",
"upload_time_iso_8601": "2024-02-26T01:45:35.659692Z",
"url": "https://files.pythonhosted.org/packages/b6/fa/570b6fe88fd1428063abec6b940ea6b02a4888695337f0bb33cd2369c09f/powerchord-0.1.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "88279b7fcbb93f37cbf8955a065024b48abb38ecc9582035347afff6d9ad76dd",
"md5": "bead88485a9471db38e9f2218a0ef7b7",
"sha256": "fdcb7dd2a1576ac39c3a8c999e650409418f953626e815a4a045e4c48892aa0a"
},
"downloads": -1,
"filename": "powerchord-0.1.4.tar.gz",
"has_sig": false,
"md5_digest": "bead88485a9471db38e9f2218a0ef7b7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4.0",
"size": 8839,
"upload_time": "2024-02-26T01:45:37",
"upload_time_iso_8601": "2024-02-26T01:45:37.164259Z",
"url": "https://files.pythonhosted.org/packages/88/27/9b7fcbb93f37cbf8955a065024b48abb38ecc9582035347afff6d9ad76dd/powerchord-0.1.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-26 01:45:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "githuib",
"github_project": "powerchord",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "powerchord"
}