| VENV ?= venv |
| PYTHON ?= $(VENV)/bin/python3 |
| UVICORN ?= $(VENV)/bin/uvicorn |
| DOCKER ?= docker |
| IMAGE ?= safe-challenge-2025/example-submission |
| GID ?= $(shell id -g) |
| UID ?= $(shell id -u) |
|
|
| .PHONY: setup |
| setup: $(VENV)/requirements.cpu.txt |
|
|
| .PHONY: download |
| download: |
| bash scripts/model_download.bash |
|
|
| .PHONY: serve |
| serve: |
| $(UVICORN) main:app |
|
|
| .PHONY: docker-build |
| docker-build: |
| docker build -t $(IMAGE) . |
|
|
| .PHONY: docker-run |
| docker-run: |
| docker run --rm -it -p 8000:8000 $(IMAGE) |
|
|
| .PHONY: compile |
| compile: |
| uv pip compile --python-version 3.12 --upgrade -o requirements.torch.cpu.txt.tmp requirements.torch.cpu.in |
| echo "--index-url https://download.pytorch.org/whl/cpu" > requirements.torch.cpu.txt |
| grep -e '^torch' requirements.torch.cpu.txt.tmp >> requirements.torch.cpu.txt |
| uv pip compile --python-version 3.12 --upgrade -o requirements.cpu.txt requirements.cpu.in |
|
|
| requirements.cpu.txt: requirements.in requirements.torch.cpu.txt | $(VENV) |
| uv pip compile --python-version 3.12 --upgrade -o requirements.cpu.txt requirements.cpu.in |
|
|
| requirements.torch.cpu.txt: requirements.torch.cpu.in | $(VENV) |
| uv pip compile --python-version 3.12 --upgrade -o requirements.torch.cpu.txt.tmp requirements.torch.cpu.in |
| echo "--index-url https://download.pytorch.org/whl/cpu" > requirements.torch.cpu.txt |
| cat requirements.torch.cpu.txt.tmp | grep '^torch' >> requirements.torch.cpu.txt |
|
|
| $(VENV)/requirements.cpu.txt: requirements.cpu.txt | $(VENV) |
| VIRTUAL_ENV=$(VENV) uv pip install -r requirements.cpu.txt |
| VIRTUAL_ENV=$(VENV) uv pip install -r requirements.torch.cpu.txt |
| cp -f requirements.cpu.txt $(VENV)/requirements.cpu.txt |
| cp -f requirements.torch.cpu.txt $(VENV)/requirements.torch.cpu.txt |
|
|
| $(VENV): |
| uv venv $(VENV) |
|
|