Python project template

by rohanjoackhim

174 downloads
Not rated
GitHub

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

- 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
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.