-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
36 lines (30 loc) · 1.37 KB
/
Copy pathMakefile
File metadata and controls
36 lines (30 loc) · 1.37 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
PYTHON_VERSION := $(strip $(shell cat .python-version 2>/dev/null))
PYTHON_PREFIX := $(shell pyenv prefix $(PYTHON_VERSION) 2>/dev/null)
PYTHON_BIN := $(PYTHON_PREFIX)/bin/python
PROJECT_ROOT := $(CURDIR)
PROJECT_NAME := $(notdir $(PROJECT_ROOT))
.PHONY: install
install: pyenv_setup uv_setup
@SITE_PACKAGES_DIR=$$(uv run python -c 'import sysconfig; print(sysconfig.get_path("purelib"))'); \
echo "$(PROJECT_ROOT)" > "$${SITE_PACKAGES_DIR}/$(PROJECT_NAME).pth"
.PHONY: pyenv_setup
pyenv_setup:
@test -n "$(PYTHON_VERSION)" || (echo "[ERROR] Failed to read Python version from .python-version."; exit 1)
@pyenv install -s $(PYTHON_VERSION) || (echo "[ERROR] pyenv is not installed. See https://github.com/pyenv/pyenv#installation"; exit 1)
@pyenv global $(PYTHON_VERSION)
.PHONY: uv_setup
uv_setup:
@test -n "$(PYTHON_PREFIX)" || (echo "[ERROR] Failed to obtain the prefix for $(PYTHON_VERSION) from pyenv."; exit 1)
@test -x "$(PYTHON_BIN)" || (echo "[ERROR] $(PYTHON_BIN) not found. Verify 'pyenv install $(PYTHON_VERSION)'."; exit 1)
@command -v uv >/dev/null 2>&1 || (echo "[ERROR] uv is not installed. See https://docs.astral.sh/uv/getting-started/installation/"; exit 1)
@uv venv --python "$(PYTHON_BIN)"
@uv sync --all-groups
.PHONY: run
run:
bash bin/demo.sh
.PHONY: cuda_check
cuda_check:
uv run python tests/test_cuda.py
.PHONY: freeze
freeze:
uv pip freeze > requirements.txt