-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
47 lines (37 loc) · 1.42 KB
/
Copy pathMakefile
File metadata and controls
47 lines (37 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
SHELL=/bin/bash
LINT_PATHS=interactive_incremental_learning/ tests/ setup.py
.PHONY: help pytest mypy type lint format check-codestyle commit-checks clean
help:
@echo "Available targets:"
@echo " pytest Run tests with coverage"
@echo " type / mypy Run mypy type checking"
@echo " lint Run ruff linting"
@echo " format Auto-format code (ruff + black)"
@echo " check-codestyle Check formatting without modifying"
@echo " commit-checks Run format + type + lint"
@echo " clean Remove generated artifacts"
pytest:
python3 -m pytest tests/ --cov-config pyproject.toml --cov-report html --cov-report term --cov=. -v --color=yes
mypy:
mypy ${LINT_PATHS}
type: mypy
lint:
# stop the build if there are Python syntax errors or undefined names
# see https://www.flake8rules.com/
ruff check ${LINT_PATHS} --select=E9,F63,F7,F82 --output-format=full
# exit-zero treats all errors as warnings.
ruff check ${LINT_PATHS} --exit-zero --output-format=concise
format:
# Sort imports
ruff check --select I ${LINT_PATHS} --fix
# Reformat using black
black ${LINT_PATHS}
check-codestyle:
# Sort imports
ruff check --select I ${LINT_PATHS}
# Reformat using black
black --check ${LINT_PATHS}
commit-checks: format type lint
clean:
rm -rf htmlcov/ .coverage __pycache__/ .mypy_cache/ .ruff_cache/ .pytest_cache/ *.egg-info
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true