all: install data train eval city_distances_full.csv: check generate_data.py @echo "Generating distance data..." @bash -c 'time python generate_data.py' data: city_distances_full.csv train: check train.py @echo "Training embeddings..." @bash -c 'time python train.py' eval: check eval.py @echo "Evaluating trained model..." @bash -c 'time python eval.py' lint: @echo "Auto-linting files and performing final style checks..." @isort --profile=black . @black . @flake8 --max-line-length=88 . check: lint @echo "Checking for unstaged or untracked changes..." @git diff-index --quiet HEAD -- || { echo "Unstaged or untracked changes detected!"; exit 1; } clean: @echo "Removing outputs/ and checkpoints/ directories" @rm -rf output/ @rm -rf checkpoints/ compress: plots/progress_35845_sm.png plots/progress_680065_sm.png plots/progress_35845_sm.png: plots/progress_35845.png @convert -resize 33% plots/progress_35845.png plots/progress_35845_sm.png plots/progress_680065_sm.png: plots/progress_680065.png @convert -resize 33% plots/progress_680065.png plots/progress_680065_sm.png install: pip install -r requirements.txt .PHONY: data train eval lint check clean all