Add ai-code-project-template repo files.
This commit is contained in:
64
tools/makefiles/python.mk
Normal file
64
tools/makefiles/python.mk
Normal file
@@ -0,0 +1,64 @@
|
||||
mkfile_dir = $(patsubst %/,%,$(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
|
||||
include $(mkfile_dir)/shell.mk
|
||||
|
||||
.DEFAULT_GOAL ?= install
|
||||
|
||||
ifdef UV_PROJECT_DIR
|
||||
uv_project_args = --directory $(UV_PROJECT_DIR)
|
||||
venv_dir = $(UV_PROJECT_DIR)/.venv
|
||||
else
|
||||
venv_dir = .venv
|
||||
endif
|
||||
|
||||
UV_SYNC_INSTALL_ARGS ?= --all-extras --frozen
|
||||
UV_RUN_ARGS ?= --all-extras --frozen
|
||||
|
||||
PYTEST_ARGS ?= --color=yes
|
||||
|
||||
## Rules
|
||||
|
||||
.PHONY: install
|
||||
install:
|
||||
uv sync $(uv_project_args) $(UV_SYNC_INSTALL_ARGS)
|
||||
|
||||
.PHONY: lock-upgrade
|
||||
lock-upgrade:
|
||||
uv lock --upgrade $(uv_project_args)
|
||||
|
||||
.PHONY: lock
|
||||
lock:
|
||||
uv sync $(uv_project_args) $(UV_SYNC_LOCK_ARGS)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(rm_dir) $(venv_dir) $(ignore_failure)
|
||||
|
||||
.PHONY: check
|
||||
check:
|
||||
@echo "Running code quality checks..."
|
||||
@echo ""
|
||||
@echo "→ Formatting code..."
|
||||
@uvx ruff format --no-cache .
|
||||
@echo ""
|
||||
@echo "→ Linting code..."
|
||||
@uvx ruff check --no-cache --fix .
|
||||
@echo ""
|
||||
@echo "→ Type checking code..."
|
||||
@uv run $(uv_project_args) $(UV_RUN_ARGS) pyright $(PYRIGHT_ARGS) || (echo ""; echo "❌ Type check failed!"; exit 1)
|
||||
@echo ""
|
||||
@echo "✅ All checks passed!"
|
||||
|
||||
ifneq ($(findstring pytest,$(if $(shell $(call command_exists,uv) $(stderr_redirect_null)),$(shell uv tree --depth 1 $(stderr_redirect_null)),)),)
|
||||
PYTEST_EXISTS=true
|
||||
endif
|
||||
ifneq ($(findstring pyright,$(if $(shell $(call command_exists,uv) $(stderr_redirect_null)),$(shell uv tree --depth 1 $(stderr_redirect_null)),)),)
|
||||
PYRIGHT_EXISTS=true
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(PYTEST_EXISTS),true)
|
||||
.PHONY: test pytest
|
||||
test: pytest
|
||||
pytest:
|
||||
uv run $(uv_project_args) $(UV_RUN_ARGS) pytest $(PYTEST_ARGS)
|
||||
endif
|
Reference in New Issue
Block a user