This is my personal template repository for python projects containing everything needed to start developing.
git clone https://github.com/MultifokalHirn/python_template_repo.git
cd python_template_repo/
make bootstrap # sets up virtual environment and installs pdm
make dev # sets up dev environment and installs dependencies
make ci # runs formatter, linter, typechecker, and tests
See CONTRIBUTING.md
for information on how to setup and contribute to this project.
-
pyproject.toml
withpdm
as dependency manager - Coverage Reporting and automated badge generation
-
Makefile
with targets for common tasks like setting up the dev environment, running tests, and formatting code - Dev packages configured out of the box (in
pyproject.toml
) -
pre-commit
hooks in.pre-commit-config.yaml
- Templates for Issues and PRs on GitHub
- Github Actions for testing and linting
- Dependabot config for automated dependency updates
- Configuration for VSCode in
.vscode/
- create demo project to showcase best practices and features
- document project structure
- document pyenv
- expand list of tools I have tried and decided against
- set up tox for testing with multiple python versions
- set up Dockerfile
- docker-compose for easy setup of dev environment
- set up devcontainer
- set up commitizen
- set up semantic-release
- set up github actions for semantic versioning
This template is meant to be a starting point for my own projects and may not follow other people's preferred setups.
Depending on the tool of configuration detail, I either actively decided against something or I have not yet tried them.
If you have any suggestions for improvements, or tools to check out, please file an issue.
black
- I like configuring stuffflake8
- replaced byruff
autopep8
- replaced byruff
isort
- replaced byruff
poetry
- usingpdm
instead because of bad experience withpoetry
tox
readthedocs
In this section, you will find some common issues you might encounter and how to resolve them. If you are experiencing any issues that are not covered here, please file an issue.
Well, have you tried turning it off and on again?
This project is authored by Lennard Wolf and open sourced under MIT license, see LICENSE
for details.