forked from pydantic/mcp-run-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
78 lines (61 loc) · 2.03 KB
/
Makefile
File metadata and controls
78 lines (61 loc) · 2.03 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
.DEFAULT_GOAL := all
.PHONY: .uv
.uv: ## Check that uv is installed
@uv --version || (echo '✖ Please install uv: https://docs.astral.sh/uv/getting-started/installation/' && exit 1)
.PHONY: .deno
.deno: ## Check that deno is installed
@deno --version || (echo "✖ Please install deno: https://deno.com" && exit 1)
.PHONY: .pre-commit
.pre-commit: ## Check that pre-commit is installed
@pre-commit -V || (echo '✖ Please install pre-commit: https://pre-commit.com/' && exit 1)
.PHONY: install
install: .uv .deno .pre-commit ## Install the package, dependencies, and pre-commit for local development
uv sync --frozen
pre-commit install --install-hooks
.PHONY: build
build: ## Build mcp_run_python/deno/prepareEnvCode.ts
uv run build/build.py
.PHONY: format-ts
format-ts: ## Format TS code
cd mcp_run_python/deno && deno task format
.PHONY: format-py
format-py: ## Format Python code
uv run ruff format
uv run ruff check --fix --fix-only
.PHONY: format
format: format-ts format-py ## Format all code
.PHONY: lint-ts
lint-ts: ## Lint TS code
cd mcp_run_python/deno && deno task lint
.PHONY: lint-py
lint-py: ## Lint Python code
uv run ruff format --check
uv run ruff check
.PHONY: lint
lint: lint-ts lint-py ## Lint all code
.PHONY: typecheck-ts
typecheck-ts: build ## Typecheck TS code
cd mcp_run_python/deno && deno task typecheck
.PHONY: typecheck-py
typecheck-py: ## Typecheck the code
uv run basedpyright
.PHONY: typecheck
typecheck: typecheck-ts typecheck-py ## Typecheck all code
.PHONY: test
test: build ## Run tests and collect coverage data
uv run coverage run -m pytest -v
@uv run coverage report
.PHONY: all
all: format typecheck test ## run format, typecheck and test
.PHONY: help
help: ## Show this help (usage: make help)
@echo "Usage: make [recipe]"
@echo "Recipes:"
@awk '/^[a-zA-Z0-9_-]+:.*?##/ { \
helpMessage = match($$0, /## (.*)/); \
if (helpMessage) { \
recipe = $$1; \
sub(/:/, "", recipe); \
printf " \033[36m%-20s\033[0m %s\n", recipe, substr($$0, RSTART + 3, RLENGTH); \
} \
}' $(MAKEFILE_LIST)