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: docker-test-no-internet docker-test-no-internet: docker run --rm -it --network none $(IMAGE) .PHONY: docker-test-readonly docker-test-readonly: docker run --rm -it --read-only --tmpfs "/tmp" $(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 .PHONY: compile-gpu compile-gpu: uv pip compile --python-version 3.12 --upgrade -o requirements.torch.gpu.txt requirements.torch.gpu.in .PHONY: docker-build-gpu docker-build-gpu: docker build -t $(IMAGE)-gpu -f Dockerfile.gpu . 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)