Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/branchvincent/python-template
:snake: My favorite Python layout
https://github.com/branchvincent/python-template
cookiecutter-python cookiecutter-template copier-template
Last synced: 14 days ago
JSON representation
:snake: My favorite Python layout
- Host: GitHub
- URL: https://github.com/branchvincent/python-template
- Owner: branchvincent
- Created: 2020-12-22T23:17:09.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-05T20:56:11.000Z (3 months ago)
- Last Synced: 2024-10-13T09:44:45.819Z (3 months ago)
- Topics: cookiecutter-python, cookiecutter-template, copier-template
- Language: Jinja
- Homepage:
- Size: 80.1 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python Template
[![CI](https://github.com/branchvincent/python-template/workflows/CI/badge.svg)](https://github.com/branchvincent/python-template/actions/workflows/ci.yaml)
A [Copier](https://github.com/copier-org/copier) template for a Python package based on my favorite tools. See the [rendered version](https://github.com/branchvincent/python-template/tree/rendered).
## Usage
```sh
uvx copier copy --trust gh:branchvincent/python-template .
```## Features
- Package manager: [Poetry](https://python-poetry.org/)
- Formatting: [Ruff](https://docs.astral.sh/ruff/formatter/)
- Testing: [pytest](https://docs.pytest.org/en/latest/)
- Linting: [Ruff](https://docs.astral.sh/ruff/linter/) and [pre-commit](https://pre-commit.com/)
- Typing: [mypy](https://mypy.readthedocs.io/en/stable/)
- Task runner: [taskipy](https://github.com/illBeRoy/taskipy)
- CI/CD: [Github Actions](https://docs.github.com/en/actions)
- Automated versioning, changelog, and release via [Conventional Commits](https://www.conventionalcommits.org/)
- Automated dependency updates via [Dependabot](https://dependabot.com/)
- Editor integration: [VS Code](https://code.visualstudio.com/)
- Documentation: [MkDocs](https://www.mkdocs.org/) (optional)
- Docker support (optional)## Recommended Tools
- Managing Python versions? [pyenv](https://github.com/pyenv/pyenv)
- Building an API? [FastAPI](https://fastapi.tiangolo.com/)
- Building a CLI? [typer](https://typer.tiangolo.com/) or [click](https://click.palletsprojects.com/)
- Analyzing data? [pandas](https://pandas.pydata.org/)
- Logging? [Loguru](https://github.com/Delgan/loguru)## Goals
- Declarative project metadata via [pyproject.toml](https://snarky.ca/what-the-heck-is-pyproject-toml/)
- Automate as much as possible