From 48a04da2488a18d2fe503490a22be7e47c65adad Mon Sep 17 00:00:00 2001 From: stef Date: Sun, 25 May 2025 08:51:12 +0100 Subject: [PATCH] Merge main into work --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index dbfb6c8..bdf3534 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,53 @@ # Template Python Repository -A minimal, conservative Python project template configured with: +This repository provides a minimal yet opinionated starting point for Python +projects. It bundles common development tools and a GitHub Actions workflow so +you can focus on writing code rather than configuring your environment. + +## Features + - **Poetry** for dependency management -- **Ruff** for linting & formatting -- **Pyright** for type-checking -- **Pytest** for testing -- **Wily** for code complexity analysis -- **GitHub Actions** for CI (lint, test, complexity check) +- **Ruff** for formatting and linting +- **Pyright** for static type checking +- **Pytest** for unit tests +- **Wily** for complexity metrics +- **GitHub Actions** for CI (lint, tests and complexity analysis) - **Makefile** with handy developer commands +## Getting Started + +1. **Replace** all occurrences of `template` with your project name. This is + primarily in `pyproject.toml` and the `template/` package directory. +2. **Install dependencies**: + + ```bash + poetry install + ``` +3. **Run code checks** (formatting, linting and type checking): + + ```bash + make check + ``` +4. **Execute tests**: + + ```bash + make test + ``` + +## Common Makefile Commands + +- **Format code**: `make format` +- **Run linter**: `make lint` +- **Auto-fix lint issues**: `make lint-fix` +- **Type check**: `make typecheck` +- **Watch tests**: `make watch` +- **Show all commands**: `make help` + +## Continuous Integration + +The included GitHub Actions workflow runs linting, type checks, unit tests and +complexity analysis for every push and pull request. + ## Usage - **Initialize the repo**: `./scripts/init_repo.sh`