forked from wkentaro/labelme
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
47 lines (36 loc) · 1002 Bytes
/
Makefile
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
ifneq ($(OS),Windows_NT)
# On Unix-based systems, use ANSI codes
BLUE = \033[36m
BOLD_BLUE = \033[1;36m
BOLD_GREEN = \033[1;32m
RED = \033[31m
YELLOW = \033[33m
BOLD = \033[1m
NC = \033[0m
endif
escape = $(subst $$,\$$,$(subst ",\",$(subst ',\',$(1))))
define exec
@echo "$(BOLD_BLUE)$(call escape,$(1))$(NC)"
@$(1)
endef
help:
@echo "$(BOLD_GREEN)Available targets:$(NC)"
@grep -E '^[a-zA-Z_-].+:.*?# .*$$' $(MAKEFILE_LIST) | \
awk 'BEGIN {FS = ":.*?# "}; \
{printf " $(BOLD_BLUE)%-20s$(NC) %s\n", $$1, $$2}'
PACKAGE_NAME:=labelme
setup: # Setup the development environment
$(call exec,uv sync --dev)
format: # Format code
$(call exec,uv run ruff format)
$(call exec,uv run ruff check --fix)
lint:
$(call exec,uv run ruff format --check)
$(call exec,uv run ruff check)
mypy:
$(call exec,uv run mypy --package $(PACKAGE_NAME))
check: lint mypy # Run checks
test: # Run tests
$(call exec,uv run pytest -v tests/)
build: # Build the package
$(call exec,uv build)