## hapless
![Checks](https://github.com/bmwant/hapless/actions/workflows/tests.yml/badge.svg)
[![PyPI](https://img.shields.io/pypi/v/hapless)](https://pypi.org/project/hapless/)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hapless)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![EditorConfig](https://img.shields.io/badge/-EditorConfig-grey?logo=editorconfig)](https://editorconfig.org/)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
> **hapless** (*adjective*) - (especially of a person) unfortunate. A developer who accidentally launched long-running process in the foreground.
Simplest way of running and tracking processes in the background.
[![asciicast](https://asciinema.org/a/489924.svg)](https://asciinema.org/a/489924?speed=2)
### Installation
```bash
$ pip install hapless
# or to make sure proper pip is used for the given python executable
$ python -m pip install hapless
```
Install into user-specific directory in case of any permissions-related issues.
```bash
$ pip install --user hapless
$ python -m pip install --user hapless
```
### Usage
```bash
# Run arbitrary script
$ hap run -- python long_running.py
# Show summary table
$ hap
# Display status of the specific process
$ hap status 1
```
See [USAGE.md](https://github.com/bmwant/hapless/blob/main/USAGE.md) for the complete list of commands and available parameters.
### Contribute
See [DEVELOP.md](https://github.com/bmwant/hapless/blob/main/DEVELOP.md) to setup your local development environment and feel free to create a pull request with a new feature.
### Releases
See [CHANGELOG.md](https://github.com/bmwant/hapless/blob/main/CHANGELOG.md) for the new features included within each release.
### See also
* [Rich](https://rich.readthedocs.io/en/stable/introduction.html) console UI library.
* [Supervisor](http://supervisord.org/) full-fledged process manager.
* [podmena](https://github.com/bmwant/podmena) provides nice emoji icons to commit messages.
### Support πΊπ¦ Ukraine in the war!
πΊπ¦ Donate to [this foundation](https://prytulafoundation.org/en) in case you want to help. Every donation matter!
Raw data
{
"_id": null,
"home_page": "https://github.com/bmwant/hapless",
"name": "hapless",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4.0",
"maintainer_email": "",
"keywords": "cli,job,runner,background,process",
"author": "Misha Behersky",
"author_email": "bmwant@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/db/2e/b15e01c572e769c7f829fc939f927ec9e76efcdeed658b54238967cf85dc/hapless-0.2.2.tar.gz",
"platform": null,
"description": "## hapless\n\n![Checks](https://github.com/bmwant/hapless/actions/workflows/tests.yml/badge.svg)\n[![PyPI](https://img.shields.io/pypi/v/hapless)](https://pypi.org/project/hapless/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hapless)\n\n\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![EditorConfig](https://img.shields.io/badge/-EditorConfig-grey?logo=editorconfig)](https://editorconfig.org/)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n\n> **hapless** (*adjective*) - (especially of a person) unfortunate. A developer who accidentally launched long-running process in the foreground.\n\nSimplest way of running and tracking processes in the background.\n\n[![asciicast](https://asciinema.org/a/489924.svg)](https://asciinema.org/a/489924?speed=2)\n\n### Installation\n\n```bash\n$ pip install hapless\n\n# or to make sure proper pip is used for the given python executable\n$ python -m pip install hapless\n```\n\nInstall into user-specific directory in case of any permissions-related issues.\n\n```bash\n$ pip install --user hapless\n$ python -m pip install --user hapless\n```\n\n### Usage\n\n```bash\n# Run arbitrary script\n$ hap run -- python long_running.py\n\n# Show summary table\n$ hap\n\n# Display status of the specific process\n$ hap status 1\n```\n\nSee [USAGE.md](https://github.com/bmwant/hapless/blob/main/USAGE.md) for the complete list of commands and available parameters.\n\n### Contribute\n\nSee [DEVELOP.md](https://github.com/bmwant/hapless/blob/main/DEVELOP.md) to setup your local development environment and feel free to create a pull request with a new feature.\n\n### Releases\n\nSee [CHANGELOG.md](https://github.com/bmwant/hapless/blob/main/CHANGELOG.md) for the new features included within each release.\n\n### See also\n\n* [Rich](https://rich.readthedocs.io/en/stable/introduction.html) console UI library.\n* [Supervisor](http://supervisord.org/) full-fledged process manager.\n* [podmena](https://github.com/bmwant/podmena) provides nice emoji icons to commit messages.\n\n### Support \ud83c\uddfa\ud83c\udde6 Ukraine in the war!\n\n\ud83c\uddfa\ud83c\udde6 Donate to [this foundation](https://prytulafoundation.org/en) in case you want to help. Every donation matter!\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Run and track processes in background",
"version": "0.2.2",
"project_urls": {
"Blog post": "https://bmwlog.pp.ua/hapless-easily-run-and-manage-background-processes/",
"Homepage": "https://github.com/bmwant/hapless",
"Repository": "https://github.com/bmwant/hapless"
},
"split_keywords": [
"cli",
"job",
"runner",
"background",
"process"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9872089b638c3d6cc97f364106b8d02787bbf719112e82157d09bf5f9b3c2919",
"md5": "80b528b12b17c50c02a637d419603818",
"sha256": "7cfd09e1ee270c1140b6fe6b6137f3570d5226e87c2cae5d7ff6040b1888cdf1"
},
"downloads": -1,
"filename": "hapless-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "80b528b12b17c50c02a637d419603818",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<4.0",
"size": 10518,
"upload_time": "2023-09-15T14:36:17",
"upload_time_iso_8601": "2023-09-15T14:36:17.005986Z",
"url": "https://files.pythonhosted.org/packages/98/72/089b638c3d6cc97f364106b8d02787bbf719112e82157d09bf5f9b3c2919/hapless-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "db2eb15e01c572e769c7f829fc939f927ec9e76efcdeed658b54238967cf85dc",
"md5": "54179265ce0bb91712beb8a9dadfee04",
"sha256": "a22ddb9b880ef5336b0415d2b762d7955917967dedb748adfcd642a9138e3d21"
},
"downloads": -1,
"filename": "hapless-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "54179265ce0bb91712beb8a9dadfee04",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<4.0",
"size": 9822,
"upload_time": "2023-09-15T14:36:18",
"upload_time_iso_8601": "2023-09-15T14:36:18.909591Z",
"url": "https://files.pythonhosted.org/packages/db/2e/b15e01c572e769c7f829fc939f927ec9e76efcdeed658b54238967cf85dc/hapless-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-15 14:36:18",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "bmwant",
"github_project": "hapless",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "hapless"
}