Python project template
About
Python project template is a starter repository for any Python project, pre-configured with modern development tools. It includes ruff and black for linting and formatting, pytest with coverage for testing, and GitHub Actions to run checks automatically on every pull request and…
Details
- Author
- rohanjoackhim
- Downloads
- 174
- Categories
- Developer Tools, Other
Jump to
- Pre-installed linting with ruff (includes flake8, isort, pyupgrade)
- Code formatting with black
- Testing with pytest and coverage plugin pytest-cov
- Pre-commit hooks for automatic checks
- GitHub Actions CI triggered on pull requests and merges
- Devcontainer configuration for reproducible environments
- Default setup for Python 3.11, easily changeable
Use the template by creating a new repository from it. You can open it in GitHub Codespaces to automatically initialize the devcontainer, or open it locally in VS Code with the Dev Containers extension. Without a devcontainer, create a virtual environment, install the required packages from requirements-dev.txt, and run pre-commit install. Replace the sample main.py and tests/main_test.py with your own code. Run tests with python3 -m pytest.
Python project template
This is a template repository for any Python project that comes with the following dev tools:
ruff: identifies many errors and style issues (flake8, isort, pyupgrade)
black: auto-formats code
Those checks are run as pre-commit hooks using the pre-commit library.
It includes pytest for testing plus the pytest-cov plugin to measure coverage.
The checks and tests are all run using Github actions on every pull request and merge to main.
This repository is setup for Python 3.11. To change the version:
1. Change the image argument in .devcontainer/devcontainer.json (see https://github.com/devcontainers/images/tree/main/src/python for a list of pre-built Docker images)
1. Change the config options in .precommit-config.yaml
1. Change the version number in .github/workflows/python.yaml
Development instructions
With devcontainer
This repository comes with a devcontainer (a Dockerized Python environment). If you open it in Codespaces, it should automatically initialize the devcontainer.
Locally, you can open it in VS Code with the Dev Containers extension installed.
Without devcontainer
If you can't or don't want to use the devcontainer, then you should first create a virtual environment:
python3 -m venv .venv
source .venv/bin/activate
Then install the dev tools and pre-commit hooks:
python3 -m pip install --user -r requirements-dev.txt
pre-commit install
Adding code and tests
This repository starts with a very simple main.py and a test for it at tests/main_test.py.
You'll want to replace that with your own code, and you'll probably want to add additional files
as your code grows in complexity.
When you're ready to run tests, run:
python3 -m pytest
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





