ppcli


Nameppcli JSON
Version 0.0.1b5 PyPI version JSON
download
home_pageNone
SummaryDynamic CLI tool to manage project-specific commands using pyproject.toml configuration
upload_time2024-09-28 13:13:10
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords automation cli command-line configuration dev-tools developer-tools project-management pyproject scripting task-runner tooling utility
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ppcli

[![PyPI - Version](https://img.shields.io/pypi/v/ppcli.svg)](https://pypi.org/project/ppcli)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ppcli.svg)](https://pypi.org/project/ppcli)

-----
`ppcli` stands for **pyproject CLI**. It is a Python package designed to provide an easy way to specify and manage auxiliary commands within a `pyproject.toml` file for any Python project.

## Purpose

The primary purpose of `ppcli` is to allow developers to define and manage common project tasks, such as test, lint, and migration commands, directly within the `pyproject.toml` file. This ensures that all project-specific commands are centralized and easily accessible.

## Installation

You can install `ppcli` via pip:

```console
pip install ppcli
```

## Usage
After installing ppcli, you can define your project-specific commands within your pyproject.toml file under the `[tool.ppcli]` section.

### Example pyproject.toml Configuration
```toml
[tool.ppcli]
lint="black --check --diff ."
fmt="black ."
clean = [
    "find . -type d -name __pycache__ -empty -print0 | xargs --null --no-run-if-empty rmdir",
    "coverage erase",
]
test = [
    "clean",
    "pytest --cov --blockage -x -s --no-header -ra",
]
```
### Defining and Combining Commands
* **Single Command**: Each key under [tool.ppcli] represents a command that can be executed. The value can be a single command string or a list of commands.
* **Combined Commands**: Use the keys of other commands to create combined tasks. In the example above, the test command executes the clean command followed by pytest.

### Running Commands

To execute the defined commands, simply run the ppcli tool followed by the command name:

```console
ppcli <command>
```
For example:

```console
ppcli lint
ppcli fmt
ppcli test
```

## Contributing

Contributions are welcome! Please open an issue or a pull request to contribute.

## License
This project is licensed under the [MIT](https://spdx.org/licenses/MIT.html) License. See the [LICENSE](/LICENSE) file for more details.


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ppcli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "automation, cli, command-line, configuration, dev-tools, developer-tools, project-management, pyproject, scripting, task-runner, tooling, utility",
    "author": null,
    "author_email": "Artem Lykhvar <me@a10r.com>",
    "download_url": "https://files.pythonhosted.org/packages/bd/6f/dec279952c1fba594c68b1701d659b2c0019b68854770a3f6fea1939f8d8/ppcli-0.0.1b5.tar.gz",
    "platform": null,
    "description": "# ppcli\n\n[![PyPI - Version](https://img.shields.io/pypi/v/ppcli.svg)](https://pypi.org/project/ppcli)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ppcli.svg)](https://pypi.org/project/ppcli)\n\n-----\n`ppcli` stands for **pyproject CLI**. It is a Python package designed to provide an easy way to specify and manage auxiliary commands within a `pyproject.toml` file for any Python project.\n\n## Purpose\n\nThe primary purpose of `ppcli` is to allow developers to define and manage common project tasks, such as test, lint, and migration commands, directly within the `pyproject.toml` file. This ensures that all project-specific commands are centralized and easily accessible.\n\n## Installation\n\nYou can install `ppcli` via pip:\n\n```console\npip install ppcli\n```\n\n## Usage\nAfter installing ppcli, you can define your project-specific commands within your pyproject.toml file under the `[tool.ppcli]` section.\n\n### Example pyproject.toml Configuration\n```toml\n[tool.ppcli]\nlint=\"black --check --diff .\"\nfmt=\"black .\"\nclean = [\n    \"find . -type d -name __pycache__ -empty -print0 | xargs --null --no-run-if-empty rmdir\",\n    \"coverage erase\",\n]\ntest = [\n    \"clean\",\n    \"pytest --cov --blockage -x -s --no-header -ra\",\n]\n```\n### Defining and Combining Commands\n* **Single Command**: Each key under [tool.ppcli] represents a command that can be executed. The value can be a single command string or a list of commands.\n* **Combined Commands**: Use the keys of other commands to create combined tasks. In the example above, the test command executes the clean command followed by pytest.\n\n### Running Commands\n\nTo execute the defined commands, simply run the ppcli tool followed by the command name:\n\n```console\nppcli <command>\n```\nFor example:\n\n```console\nppcli lint\nppcli fmt\nppcli test\n```\n\n## Contributing\n\nContributions are welcome! Please open an issue or a pull request to contribute.\n\n## License\nThis project is licensed under the [MIT](https://spdx.org/licenses/MIT.html) License. See the [LICENSE](/LICENSE) file for more details.\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Dynamic CLI tool to manage project-specific commands using pyproject.toml configuration",
    "version": "0.0.1b5",
    "project_urls": {
        "Documentation": "https://github.com/lykhvar/ppcli#readme",
        "Issues": "https://github.com/lykhvar/ppcli/issues",
        "Source": "https://github.com/lykhvar/ppcli"
    },
    "split_keywords": [
        "automation",
        " cli",
        " command-line",
        " configuration",
        " dev-tools",
        " developer-tools",
        " project-management",
        " pyproject",
        " scripting",
        " task-runner",
        " tooling",
        " utility"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "934952243b5f04ba16c93ec35ed07cf819371963e216f74206102f8d7bb0a6bd",
                "md5": "3404fba33dc81bb26bac9edae91c59f0",
                "sha256": "6af6ec5032d6ec2ff7af9c9b8edccd022ade4689cd54f0349cf4595f0d99680f"
            },
            "downloads": -1,
            "filename": "ppcli-0.0.1b5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3404fba33dc81bb26bac9edae91c59f0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5069,
            "upload_time": "2024-09-28T13:13:08",
            "upload_time_iso_8601": "2024-09-28T13:13:08.521851Z",
            "url": "https://files.pythonhosted.org/packages/93/49/52243b5f04ba16c93ec35ed07cf819371963e216f74206102f8d7bb0a6bd/ppcli-0.0.1b5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bd6fdec279952c1fba594c68b1701d659b2c0019b68854770a3f6fea1939f8d8",
                "md5": "23af5d325c689af02761df7c92a7a1a0",
                "sha256": "6b71629e56c291f71d9fbed5d1945e3163debcc83b4b06c72ed7c5ec039e9e65"
            },
            "downloads": -1,
            "filename": "ppcli-0.0.1b5.tar.gz",
            "has_sig": false,
            "md5_digest": "23af5d325c689af02761df7c92a7a1a0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 5035,
            "upload_time": "2024-09-28T13:13:10",
            "upload_time_iso_8601": "2024-09-28T13:13:10.367561Z",
            "url": "https://files.pythonhosted.org/packages/bd/6f/dec279952c1fba594c68b1701d659b2c0019b68854770a3f6fea1939f8d8/ppcli-0.0.1b5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-28 13:13:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "lykhvar",
    "github_project": "ppcli#readme",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "ppcli"
}
        
Elapsed time: 0.96554s