VENV_DIR := .venv
ACTIVATE := source $(VENV_DIR)/bin/activate
PYTHON := $(VENV_DIR)/bin/python
REQUIREMENTS := requirements.txt
.PHONY: all
all: help
.PHONY: install
install:
@echo "Setting up virtual environment..."
@test -d $(VENV_DIR) || python3 -m venv $(VENV_DIR)
@echo "Installing dependencies..."
$(PYTHON) -m pip install --upgrade pip
$(PYTHON) -m pip install -r $(REQUIREMENTS)
.PHONY: run
serve:
@echo "Running the server..."
$(PYTHON) -m uvicorn main:app
.PHONY: test
test:
@echo "Running tests..."
$(PYTHON) -m pytest
.PHONY: clean
clean:
@echo "Cleaning up..."
rm -rf $(VENV_DIR)
find . -type d -name "__pycache__" -exec rm -rf {} +
.PHONY: help
help:
@echo "Makefile targets:"
@echo " install - Create virtual environment and install dependencies"
@echo " serve - Run server"
@echo " test - Run tests"
@echo " clean - Remove virtual environment and cache files"