powerchord


Namepowerchord JSON
Version 0.2.6 PyPI version JSON
download
home_pageNone
SummaryConcurrent CLI task runner
upload_time2025-10-16 16:37:58
maintainerNone
docs_urlNone
authorHuib Piguillet
requires_python>=3.12
licenseNone
keywords task runner cli utility concurrency
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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": null,
    "name": "powerchord",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "task runner, cli utility, concurrency",
    "author": "Huib Piguillet",
    "author_email": "huib@proton.me",
    "download_url": "https://files.pythonhosted.org/packages/aa/17/689e026f053d601bfc0cdbe304b87a7572643c285d9dbc37c886597890c5/powerchord-0.2.6.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\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Concurrent CLI task runner",
    "version": "0.2.6",
    "project_urls": {
        "Github": "https://github.com/githuib/powerchord",
        "PyPI": "https://pypi.org/project/powerchord/"
    },
    "split_keywords": [
        "task runner",
        " cli utility",
        " concurrency"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4bfcd5b26aa3e6ef86be60277d88276312df9721b6a2645806978fb5b3725444",
                "md5": "af4eae272daf41974f42a6b77652d35c",
                "sha256": "2148f51c4aaeb670f8c1fc136f09277e39481253b738eefc67e7fa1724ae9ffa"
            },
            "downloads": -1,
            "filename": "powerchord-0.2.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "af4eae272daf41974f42a6b77652d35c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 9075,
            "upload_time": "2025-10-16T16:37:57",
            "upload_time_iso_8601": "2025-10-16T16:37:57.452986Z",
            "url": "https://files.pythonhosted.org/packages/4b/fc/d5b26aa3e6ef86be60277d88276312df9721b6a2645806978fb5b3725444/powerchord-0.2.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa17689e026f053d601bfc0cdbe304b87a7572643c285d9dbc37c886597890c5",
                "md5": "ff218fc84d9cce4fd1860eea9b1633ee",
                "sha256": "b26bb842a10e1db349942073cfd9b5532a256b88731d4e6f197f99c5ecb10105"
            },
            "downloads": -1,
            "filename": "powerchord-0.2.6.tar.gz",
            "has_sig": false,
            "md5_digest": "ff218fc84d9cce4fd1860eea9b1633ee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 7862,
            "upload_time": "2025-10-16T16:37:58",
            "upload_time_iso_8601": "2025-10-16T16:37:58.740929Z",
            "url": "https://files.pythonhosted.org/packages/aa/17/689e026f053d601bfc0cdbe304b87a7572643c285d9dbc37c886597890c5/powerchord-0.2.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-16 16:37:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "githuib",
    "github_project": "powerchord",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "powerchord"
}
        
Elapsed time: 4.23468s