# python-template
[![Validation Workflow](https://github.com/mbeacom/python-template/actions/workflows/validate.yaml/badge.svg?branch=main&event=push)](https://github.com/mbeacom/python-template/actions/workflows/validate.yaml)
[![Pre-Commit Checks Workflow](https://github.com/mbeacom/python-template/actions/workflows/pre-commit.yaml/badge.svg?branch=main&event=push)](https://github.com/mbeacom/python-template/actions/workflows/pre-commit.yaml)
[![Coverage Status](https://codecov.io/github/mbeacom/python-template/coverage.svg?branch=main)](https://codecov.io/github/mbeacom/python-template?branch=main)
[![PyPi](https://img.shields.io/pypi/v/python-template-x)](https://pypi.org/project/python-template-x/)
[![CodeQL](https://github.com/mbeacom/python-template/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/mbeacom/python-template/actions/workflows/github-code-scanning/codeql)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mbeacom/python-template/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mbeacom/python-template)
This project is an opinionated python template.
## Usage
This project uses:
- [poetry](https://python-poetry.org/) for dependency management and packaging.
- [poethepoet](https://poethepoet.natn.io/) for task running.
- [pytest](https://docs.pytest.org/en/stable/) for testing.
- [black](https://black.readthedocs.io/en/stable/) for auto-formatting.
- [mypy](https://mypy.readthedocs.io/en/stable/) for static type checking.
- [pre-commit](https://pre-commit.com/) for git hooks.
- [ruff](https://beta.ruff.rs/docs/) for linting.
- [mkdocs](https://www.mkdocs.org/) for documentation.
Ensure you have installed the relevant dependencies before continuing.
### Install dependencies
```bash
poetry install
```
### Run tests
```bash
poetry run poe test
```
## GitHub Actions Setup
### Validation Workflow
#### CodeCov.io
The workflow is automatically setup to pass along coverage reports to CodeCov.io.
You must set the `CODECOV_TOKEN` secret in your repository settings.
Otherwise, disable the routine in the `.github/workflows/validate.yaml` file.
### Publishing Workflow
Ensure you have Discussions enabled in your repository settings,
or remove `discussion_category_name` from the `.github/workflows/publish.yaml` file.
#### PyPi
The workflow is automatically setup to publish to PyPi.
You must set the `POETRY_PYPI_TOKEN_PYPI` secret in your repository settings.
Otherwise, disable the routine in the `.github/workflows/publish.yaml` file.
Raw data
{
"_id": null,
"home_page": null,
"name": "python-template-x",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.9",
"maintainer_email": null,
"keywords": "app, cli, python, template",
"author": "Mark Beacom",
"author_email": "m@beacom.dev",
"download_url": "https://files.pythonhosted.org/packages/0d/3e/fd6b8acb1d8af5898fe51fcaabe39fd86561fe0720fcc346a182299734cc/python_template_x-0.4.1.tar.gz",
"platform": null,
"description": "# python-template\n\n[![Validation Workflow](https://github.com/mbeacom/python-template/actions/workflows/validate.yaml/badge.svg?branch=main&event=push)](https://github.com/mbeacom/python-template/actions/workflows/validate.yaml)\n[![Pre-Commit Checks Workflow](https://github.com/mbeacom/python-template/actions/workflows/pre-commit.yaml/badge.svg?branch=main&event=push)](https://github.com/mbeacom/python-template/actions/workflows/pre-commit.yaml)\n[![Coverage Status](https://codecov.io/github/mbeacom/python-template/coverage.svg?branch=main)](https://codecov.io/github/mbeacom/python-template?branch=main)\n[![PyPi](https://img.shields.io/pypi/v/python-template-x)](https://pypi.org/project/python-template-x/)\n[![CodeQL](https://github.com/mbeacom/python-template/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/mbeacom/python-template/actions/workflows/github-code-scanning/codeql)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/mbeacom/python-template/badge)](https://securityscorecards.dev/viewer/?uri=github.com/mbeacom/python-template)\n\nThis project is an opinionated python template.\n\n## Usage\n\nThis project uses:\n\n- [poetry](https://python-poetry.org/) for dependency management and packaging.\n- [poethepoet](https://poethepoet.natn.io/) for task running.\n- [pytest](https://docs.pytest.org/en/stable/) for testing.\n- [black](https://black.readthedocs.io/en/stable/) for auto-formatting.\n- [mypy](https://mypy.readthedocs.io/en/stable/) for static type checking.\n- [pre-commit](https://pre-commit.com/) for git hooks.\n- [ruff](https://beta.ruff.rs/docs/) for linting.\n- [mkdocs](https://www.mkdocs.org/) for documentation.\n\nEnsure you have installed the relevant dependencies before continuing.\n\n### Install dependencies\n\n```bash\npoetry install\n```\n\n### Run tests\n\n```bash\npoetry run poe test\n```\n\n## GitHub Actions Setup\n\n### Validation Workflow\n\n#### CodeCov.io\n\nThe workflow is automatically setup to pass along coverage reports to CodeCov.io.\nYou must set the `CODECOV_TOKEN` secret in your repository settings.\nOtherwise, disable the routine in the `.github/workflows/validate.yaml` file.\n\n### Publishing Workflow\n\nEnsure you have Discussions enabled in your repository settings,\nor remove `discussion_category_name` from the `.github/workflows/publish.yaml` file.\n\n#### PyPi\n\nThe workflow is automatically setup to publish to PyPi.\nYou must set the `POETRY_PYPI_TOKEN_PYPI` secret in your repository settings.\nOtherwise, disable the routine in the `.github/workflows/publish.yaml` file.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "This is a python template.",
"version": "0.4.1",
"project_urls": null,
"split_keywords": [
"app",
" cli",
" python",
" template"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "efcd4529c431861c2a297abd77adb237ea58d53b9b06ee8d8c793ac92b3c12a0",
"md5": "2a893a0e39dbefa51c4074d5ff949c60",
"sha256": "05aa516ce208bb3b68edc954952653201169fa4fec545f7977e888357147de48"
},
"downloads": -1,
"filename": "python_template_x-0.4.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2a893a0e39dbefa51c4074d5ff949c60",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.9",
"size": 5981,
"upload_time": "2024-12-10T01:46:57",
"upload_time_iso_8601": "2024-12-10T01:46:57.734024Z",
"url": "https://files.pythonhosted.org/packages/ef/cd/4529c431861c2a297abd77adb237ea58d53b9b06ee8d8c793ac92b3c12a0/python_template_x-0.4.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d3efd6b8acb1d8af5898fe51fcaabe39fd86561fe0720fcc346a182299734cc",
"md5": "981a37e186af080d78e504f755d09acb",
"sha256": "f026645defee0b46dfbae25d76d39d12e111136d12aee0f44d1bdff30754d34b"
},
"downloads": -1,
"filename": "python_template_x-0.4.1.tar.gz",
"has_sig": false,
"md5_digest": "981a37e186af080d78e504f755d09acb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.9",
"size": 4878,
"upload_time": "2024-12-10T01:46:58",
"upload_time_iso_8601": "2024-12-10T01:46:58.683970Z",
"url": "https://files.pythonhosted.org/packages/0d/3e/fd6b8acb1d8af5898fe51fcaabe39fd86561fe0720fcc346a182299734cc/python_template_x-0.4.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-10 01:46:58",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "python-template-x"
}