Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/giocaizzi/cookiecutter-python
Cookiecutter template for Python packages.
https://github.com/giocaizzi/cookiecutter-python
actions black cicd cookiecutter coverage documentation flake8 gh-pages markdown pytest python sphinx
Last synced: about 1 month ago
JSON representation
Cookiecutter template for Python packages.
- Host: GitHub
- URL: https://github.com/giocaizzi/cookiecutter-python
- Owner: giocaizzi
- Created: 2023-06-21T23:12:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-06T02:16:20.000Z (6 months ago)
- Last Synced: 2024-10-14T00:06:53.731Z (2 months ago)
- Topics: actions, black, cicd, cookiecutter, coverage, documentation, flake8, gh-pages, markdown, pytest, python, sphinx
- Language: Python
- Homepage:
- Size: 111 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# cookiecutter-python
[![Deploy Ubunut](https://github.com/giocaizzi/cookiecutter-python/actions/workflows/deployment.yml/badge.svg)](https://github.com/giocaizzi/cookiecutter-python/actions/workflows/deployment.yml)
[![Deploy Windows](https://github.com/giocaizzi/cookiecutter-python/actions/workflows/deployment-win.yml/badge.svg)](https://github.com/giocaizzi/cookiecutter-python/actions/workflows/deployment-win.yml)This is a [cookiecutter](https://github.com/cookiecutter/cookiecutter) template for Python packages.
## Usage
```bash
pipx run cookiecutter gh:giocaizzi/cookiecutter-python [--config-file ]
```### User configuration
Specify user configuration in YAML file.
```yaml
default_context:
author_name: "Mario Rossi"
author_email: "[email protected]"
github_username: "mariorrossi"
```Set default configuration, adding the `COOKIECUTTER_CONFIG` environment variable.
```bash
export COOKIECUTTER_CONFIG=/home/mariorossi/my-custom-config.yaml
```## 🍬 Features:
- 🛠 **Set up Python 3.x package** with [poetry](<>) or [setuptools](https://setuptools.readthedocs.io/en/latest/)
- Choosing between `pyproject.toml` configuration or legacy `setup.py` script
- *Formatting* with [black](https://github.com/psf/black)
- *Linting* with [flake8](https://flake8.pycqa.org/en/latest/) and [flake8-rst-docstrings](https://github.com/peterjc/flake8-rst-docstrings/tree/master) to catch RST formatting errors.
- ⚙️ **Testing** with [pytest](https://docs.pytest.org/en/latest/)
- Code *coverage* with [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/)
- 📚 **Documentation** with [Sphinx](http://www.sphinx-doc.org/en/master/)
- *Automatic API Reference* from code docstrings with [autodoc](https://www.sphinx-doc.org/en/master/man/sphinx-apidoc.html)
- Custom API Reference with [jinja2](https://jinja.palletsprojects.com)
- Optimized for [GitHub Pages](https://pages.github.com/), with separate branches for `main` and `gh-pages`
- Read the Docs theme with [sphinx_rtd_theme](https://sphinx-rtd-theme.readthedocs.io/en/stable/)
- Render jupyter notebooks with [nbsphinx](https://nbsphinx.readthedocs.io/en/latest/)
- ♻️ **Continuous Integration** with [GitHub Actions](https://docs.github.com/en/actions)
- Utilize standardized reusable workflows from [python-dev-actions](https://github.com/giocaizzi/python-dev-actions) to maintain a consistent CI/CD pipeline across projects.
- ⚖️ MIT License