Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,22 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.12", "3.13"]
steps:
- uses: actions/checkout@v4

- uses: astral-sh/setup-uv@v5
with:
python-version: ${{ matrix.python-version }}

- run: uv sync
- run: uv sync --frozen

- name: Lint
run: uv run ruff check .

- name: Format check
run: uv run ruff format --check .
Comment on lines 23 to +27

- name: Type check
run: uv run mypy src

Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.10
3.12
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ just install # Install dependencies (uv sync)
just run # Run the project
just test # Run tests (pytest)
just lint # Lint with ruff
just format # Format with black
just format # Format with ruff
just typecheck # Type check with mypy
just check # Run lint + typecheck + test
```
Expand All @@ -29,9 +29,9 @@ just check # Run lint + typecheck + test
- **uv** for fast dependency management and virtual environments
- **just** as a command runner (replaces Makefiles)
- **pytest** for testing with strict markers and config
- **ruff** for linting, **black** for formatting, **mypy** for type checking
- **ruff** for linting and formatting, **mypy** for type checking
- **hatchling** build backend
- Python 3.10+ compatibility
- Python 3.12+ compatibility

Comment on lines +32 to 35
## Customization Checklist

Expand Down
7 changes: 5 additions & 2 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@ lint:
uv run ruff check .

format:
uv run black .
uv run ruff format .

typecheck:
uv run mypy src

check: lint typecheck test
format-check:
uv run ruff format --check .

check: lint format-check typecheck test
14 changes: 7 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
name = "myproject"
version = "0.1.1"
requires-python = ">=3.10"
requires-python = ">=3.12"
dependencies = []

[build-system]
Expand All @@ -12,7 +12,7 @@ build-backend = "hatchling.build"
packages = ["src/myproject"]

[dependency-groups]
dev = ["pytest", "ruff", "black", "mypy"]
dev = ["pytest", "ruff", "mypy"]

[tool.pytest.ini_options]
addopts = "-ra -q --strict-markers --strict-config"
Expand All @@ -26,16 +26,16 @@ markers = [
]

[tool.ruff]
line-length = 88
target-version = "py312"
line-length = 120

[tool.ruff.lint]
select = ["E", "F", "W", "I"]

[tool.black]
line-length = 88
target-version = ["py310"]
[tool.ruff.format]
quote-style = "double"
Comment on lines 28 to +36

[tool.mypy]
python_version = "3.10"
python_version = "3.12"
check_untyped_defs = true
ignore_missing_imports = true
1 change: 0 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import sys
from pathlib import Path


# Ensure tests can import the src-layout package without requiring prior installation.
ROOT = Path(__file__).resolve().parents[1]
SRC = ROOT / "src"
Expand Down
216 changes: 2 additions & 214 deletions uv.lock

Large diffs are not rendered by default.

Loading