<!--
SPDX-FileCopyrightText: © 2023 Romain Brault <mail@romainbrault.com>
SPDX-License-Identifier: MIT
-->
<h1 align="center">
<a href="https://python-whiteprint.readthedocs.io/"><img src="https://raw.githubusercontent.com/RomainBrault/python-whiteprint/main/docs/images/logo.png" alt="python whiteprint"></a>
</h1>
<p align="center">
<em>Python Whiteprint, generate easily Python projects with (opinionated) best practices.</em>
</p>
<p align="center">
<a href="https://pypi.python.org/pypi/python-whiteprint">
<img alt="PyPI" src="https://img.shields.io/pypi/v/python-whiteprint.svg"/>
</a>
<a href="https://github.com/RomainBrault/python-whiteprint/actions/workflows/tests.yml">
<img alt="PyPI" src="https://github.com/RomainBrault/python-whiteprint/actions/workflows/tests.yml/badge.svg?branch=main"/>
</a>
<a href="https://codecov.io/gh/RomainBrault/python-whiteprint">
<img alt="pypi" src="https://codecov.io/gh/RomainBrault/python-whiteprint/branch/main/graph/badge.svg?token=GSYS7VUB5R"/>
</a>
<a href="https://github.com/psf/black">
<img alt="pypi" src="https://img.shields.io/badge/code%20style-black-000000.svg"/>
</a>
<a href="https://mypy-lang.org/">
<img alt="pypi" src="https://www.mypy-lang.org/static/mypy_badge.svg"/>
</a>
<a href="https://pre-commit.com/">
<img alt="pypi" src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white"/>
</a>
<a href="https://opensource.org/licenses/MIT">
<img alt="pypi" src="https://img.shields.io/github/license/RomainBrault/python-whiteprint"/>
</a>
<a href="https://www.contributor-covenant.org/version/2/1/code_of_conduct/">
<img alt="pypi" src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg"/>
</a>
</p>
---
**Documentation**: <a href="https://python-whiteprint.readthedocs.io/en/latest/" target="_blank">https://python-whiteprint.readthedocs.io/en/latest/</a>
**Source Code**: <a href="https://github.com/RomainBrault/python-whiteprint" target="_blank">https://github.com/RomainBrault/python-whiteprint</a>
---
# Installation
Ensure that you have [git](https://git-scm.com/) and
[python3](https://www.python.org/) installed.
Then install the required Python tools:
```console
$ python3 -m pip install --user --upgrade pipx
$ pipx install poetry
$ pipx install nox
$ pipx inject nox nox-poetry rich
```
Eventually install Python Whiteprint:
```console
$ pipx install python-whiteprint
```
# Example
Create a local project
```console
$ whiteprint init <my_project>
```
Create a GitHub project
```console
$ whiteprint init <my_project> --github-token <my_github_token>
```
Note that the GitHub token must have repository, workflows and packages
permissions.
# Yet another Python Project scaffold/cookiecutter/generator?
<p align="center"><em>
Yes.
</em></p>
This project build upon the excellents [cookiecutter-hypermodern-python] by
[@cjolowicz](https://github.com/cjolowicz) as well as [python-blueprint] by
[@johnthagen](https://github.com/johnthagen).
You might want to check these projects as they might be more suited to your
needs.
The documentation of this project is heavily inspired from @cjolowicz's work.
We also recommend readings @cjolowicz's [guide on modern Python
tooling](https://cjolowicz.github.io/posts/hypermodern-python-01-setup/).
# Differences compared to [cookiecutter-hypermodern-python]
- Use [copier](https://copier.readthedocs.io/en/latest/) instead of the
cookiecutter project,
- tweaks in the generated project (non exhaustively: CLI with Typer
instead of Click, dynamic type checking with beartype, [auto-API
documentation](https://sphinx-autoapi.readthedocs.io/en/latest/)),
- manage licenses with [Reuse](https://reuse.software/),
- more Github Actions and Community Standards and Community Standards,
- [Ruff](https://beta.ruff.rs/docs/) instead of Flake8 to auto-fix a maximum of
code smells,
- strict linting with [pylint](https://pylint.readthedocs.io/en/latest/),
- OCI Container images,
- localization with [Babel](https://babel.pocoo.org/en/latest/index.html).
[cookiecutter-hypermodern-python]: https://cookiecutter-hypermodern-python.readthedocs.io/en/2022.6.3.post1/
[python-blueprint]: https://github.com/johnthagen/python-blueprint
Raw data
{
"_id": null,
"home_page": "https://github.com/RomainBrault/python-whiteprint",
"name": "python-whiteprint",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*",
"maintainer_email": "",
"keywords": "Python,Cookiecutter,copier,template,rich,typer,nox,poetry,beartype,oci-image,container,docker,podman,ruff",
"author": "Romain Brault",
"author_email": "mail@romainbrault.com",
"download_url": "https://files.pythonhosted.org/packages/57/13/89ade7ccf9dbe3c0e57099aa4b7a0119dd49a38ff832b3564bc3eead3a91/python_whiteprint-0.10.0.tar.gz",
"platform": null,
"description": "<!--\nSPDX-FileCopyrightText: \u00a9 2023 Romain Brault <mail@romainbrault.com>\n\nSPDX-License-Identifier: MIT\n-->\n\n<h1 align=\"center\">\n <a href=\"https://python-whiteprint.readthedocs.io/\"><img src=\"https://raw.githubusercontent.com/RomainBrault/python-whiteprint/main/docs/images/logo.png\" alt=\"python whiteprint\"></a>\n</h1>\n<p align=\"center\">\n <em>Python Whiteprint, generate easily Python projects with (opinionated) best practices.</em>\n</p>\n<p align=\"center\">\n <a href=\"https://pypi.python.org/pypi/python-whiteprint\">\n <img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/python-whiteprint.svg\"/>\n </a>\n <a href=\"https://github.com/RomainBrault/python-whiteprint/actions/workflows/tests.yml\">\n <img alt=\"PyPI\" src=\"https://github.com/RomainBrault/python-whiteprint/actions/workflows/tests.yml/badge.svg?branch=main\"/>\n </a>\n <a href=\"https://codecov.io/gh/RomainBrault/python-whiteprint\">\n <img alt=\"pypi\" src=\"https://codecov.io/gh/RomainBrault/python-whiteprint/branch/main/graph/badge.svg?token=GSYS7VUB5R\"/>\n </a>\n <a href=\"https://github.com/psf/black\">\n <img alt=\"pypi\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"/>\n </a>\n <a href=\"https://mypy-lang.org/\">\n <img alt=\"pypi\" src=\"https://www.mypy-lang.org/static/mypy_badge.svg\"/>\n </a>\n <a href=\"https://pre-commit.com/\">\n <img alt=\"pypi\" src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white\"/>\n </a>\n <a href=\"https://opensource.org/licenses/MIT\">\n <img alt=\"pypi\" src=\"https://img.shields.io/github/license/RomainBrault/python-whiteprint\"/>\n </a>\n <a href=\"https://www.contributor-covenant.org/version/2/1/code_of_conduct/\">\n <img alt=\"pypi\" src=\"https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg\"/>\n </a>\n</p>\n\n---\n\n**Documentation**: <a href=\"https://python-whiteprint.readthedocs.io/en/latest/\" target=\"_blank\">https://python-whiteprint.readthedocs.io/en/latest/</a>\n\n**Source Code**: <a href=\"https://github.com/RomainBrault/python-whiteprint\" target=\"_blank\">https://github.com/RomainBrault/python-whiteprint</a>\n\n---\n\n# Installation\n\nEnsure that you have [git](https://git-scm.com/) and\n[python3](https://www.python.org/) installed.\n\nThen install the required Python tools:\n\n```console\n$ python3 -m pip install --user --upgrade pipx\n$ pipx install poetry\n$ pipx install nox\n$ pipx inject nox nox-poetry rich\n```\n\nEventually install Python Whiteprint:\n\n```console\n$ pipx install python-whiteprint\n```\n\n# Example\n\nCreate a local project\n\n```console\n$ whiteprint init <my_project>\n```\n\nCreate a GitHub project\n\n```console\n$ whiteprint init <my_project> --github-token <my_github_token>\n```\n\nNote that the GitHub token must have repository, workflows and packages\npermissions.\n\n# Yet another Python Project scaffold/cookiecutter/generator?\n\n<p align=\"center\"><em>\nYes.\n</em></p>\n\nThis project build upon the excellents [cookiecutter-hypermodern-python] by\n[@cjolowicz](https://github.com/cjolowicz) as well as [python-blueprint] by\n[@johnthagen](https://github.com/johnthagen).\n\nYou might want to check these projects as they might be more suited to your\nneeds.\n\nThe documentation of this project is heavily inspired from @cjolowicz's work.\nWe also recommend readings @cjolowicz's [guide on modern Python\ntooling](https://cjolowicz.github.io/posts/hypermodern-python-01-setup/).\n\n# Differences compared to [cookiecutter-hypermodern-python]\n\n- Use [copier](https://copier.readthedocs.io/en/latest/) instead of the\n cookiecutter project,\n- tweaks in the generated project (non exhaustively: CLI with Typer\n instead of Click, dynamic type checking with beartype, [auto-API\n documentation](https://sphinx-autoapi.readthedocs.io/en/latest/)),\n- manage licenses with [Reuse](https://reuse.software/),\n- more Github Actions and Community Standards and Community Standards,\n- [Ruff](https://beta.ruff.rs/docs/) instead of Flake8 to auto-fix a maximum of\n code smells,\n- strict linting with [pylint](https://pylint.readthedocs.io/en/latest/),\n- OCI Container images,\n- localization with [Babel](https://babel.pocoo.org/en/latest/index.html).\n\n[cookiecutter-hypermodern-python]: https://cookiecutter-hypermodern-python.readthedocs.io/en/2022.6.3.post1/\n[python-blueprint]: https://github.com/johnthagen/python-blueprint\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Generating Python projects using best practices",
"version": "0.10.0",
"project_urls": {
"Documentation": "https://RomainBrault.github.io/python-whiteprint/",
"Homepage": "https://github.com/RomainBrault/python-whiteprint",
"Repository": "https://github.com/RomainBrault/python-whiteprint.git"
},
"split_keywords": [
"python",
"cookiecutter",
"copier",
"template",
"rich",
"typer",
"nox",
"poetry",
"beartype",
"oci-image",
"container",
"docker",
"podman",
"ruff"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "db975816778678676dd615b13fbc334b0e71865c593585ba7d4e9d9fc32aa345",
"md5": "2d3f9d121fa31cc6814fea58d826ccc7",
"sha256": "ff015319f071fa78c7df1a77e10a0b64cb3c0c947e73e3735abbe8ed913d2882"
},
"downloads": -1,
"filename": "python_whiteprint-0.10.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2d3f9d121fa31cc6814fea58d826ccc7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*",
"size": 35785,
"upload_time": "2023-10-17T09:40:18",
"upload_time_iso_8601": "2023-10-17T09:40:18.175332Z",
"url": "https://files.pythonhosted.org/packages/db/97/5816778678676dd615b13fbc334b0e71865c593585ba7d4e9d9fc32aa345/python_whiteprint-0.10.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "571389ade7ccf9dbe3c0e57099aa4b7a0119dd49a38ff832b3564bc3eead3a91",
"md5": "6bf70200f1ff433756cce21f5026fb5e",
"sha256": "8bf687678c620e61acb2aee1d67f8b058b8f1a6921fa94df858d72201b181a97"
},
"downloads": -1,
"filename": "python_whiteprint-0.10.0.tar.gz",
"has_sig": false,
"md5_digest": "6bf70200f1ff433756cce21f5026fb5e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8, !=2.7.*, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*",
"size": 26409,
"upload_time": "2023-10-17T09:40:19",
"upload_time_iso_8601": "2023-10-17T09:40:19.535898Z",
"url": "https://files.pythonhosted.org/packages/57/13/89ade7ccf9dbe3c0e57099aa4b7a0119dd49a38ff832b3564bc3eead3a91/python_whiteprint-0.10.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-17 09:40:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "RomainBrault",
"github_project": "python-whiteprint",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "python-whiteprint"
}