53 lines
1.6 KiB
Makefile
53 lines
1.6 KiB
Makefile
.PHONY: default
|
|
default: help
|
|
|
|
.PHONY: help
|
|
help: ## Show this help message
|
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
|
|
|
# =============================================================================
|
|
# ENVIRONMENT SETUP
|
|
# =============================================================================
|
|
|
|
.PHONY: setup
|
|
setup: ## Setup virtual environment and install dependencies
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
.venv/bin/pip install --upgrade pip
|
|
.venv/bin/pip install -r requirements.txt
|
|
|
|
.PHONY: install
|
|
install: ## Install/update dependencies
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
|
|
# =============================================================================
|
|
# DEVELOPMENT & CODE QUALITY
|
|
# =============================================================================
|
|
|
|
.PHONY: format
|
|
format: ## Format code with black
|
|
black . --line-length 100
|
|
|
|
.PHONY: lint
|
|
lint: ## Lint code with flake8
|
|
flake8 . --max-line-length=100 --ignore=E203,W503 --exclude=.venv
|
|
|
|
.PHONY: type-check
|
|
type-check: ## Type check with mypy
|
|
mypy . --ignore-missing-imports
|
|
|
|
.PHONY: notebook
|
|
notebook: ## Start Jupyter notebook
|
|
jupyter notebook notebooks/
|
|
|
|
# =============================================================================
|
|
# DEPLOYMENT & PRODUCTION
|
|
# =============================================================================
|
|
|
|
.PHONY: backup
|
|
backup: ## Backup datasets and results
|
|
@mkdir -p backups/$(shell date +%Y%m%d_%H%M%S)
|
|
@cp -r data/ backups/$(shell date +%Y%m%d_%H%M%S)/data/
|
|
@echo "Backup created in backups/$(shell date +%Y%m%d_%H%M%S)/"
|