gridpulse / Makefile
adwitiyashukla's picture
Sync from GitHub 7605520
1e10174 verified
Raw
History Blame Contribute Delete
2.29 kB
# GridPulse developer tasks. Run `make help` for the list.
.DEFAULT_GOAL := help
.PHONY: help setup probe ingest build quality train anomalies export all \
test lint format api app dagster dbt docker clean
PY ?= python
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-12s\033[0m %s\n", $$1, $$2}'
setup: ## Create the venv and install everything
$(PY) -m venv .venv
./.venv/bin/pip install --upgrade pip
./.venv/bin/pip install -r requirements-dev.txt
./.venv/bin/pip install -r requirements-torch.txt --index-url https://download.pytorch.org/whl/cpu
./.venv/bin/pip install -e . --no-deps
@echo "Now: cp .env.example .env and add your API keys."
probe: ## Validate API keys and response contracts
gridpulse probe
ingest: ## Extract EIA and weather into bronze
gridpulse ingest
build: ## Build the silver and gold warehouse layers
gridpulse build
quality: ## Run the data quality suite
gridpulse quality
train: ## Train and evaluate every forecasting model
gridpulse train
anomalies: ## Fit and score the anomaly detectors
gridpulse anomalies
export: ## Write the deployment artifact for the public app
gridpulse export
all: ## Run the entire pipeline end to end
gridpulse all
test: ## Run the test suite with coverage
pytest -v --cov=gridpulse --cov-report=term-missing
lint: ## Lint with ruff
ruff check src tests orchestration app.py
format: ## Auto-format with ruff
ruff format src tests app.py
ruff check --fix src tests orchestration app.py
api: ## Serve the FastAPI app on :8000
uvicorn gridpulse.api.main:app --reload --port 8000
app: ## Serve the Streamlit dashboard on :8501
streamlit run app.py
dagster: ## Open the Dagster UI on :3000
dagster dev -f orchestration/dagster_app/definitions.py
dbt: ## Build and test the dbt marts
cd dbt/gridpulse && dbt deps --profiles-dir . && dbt build --profiles-dir .
docker: ## Build and run the local Docker stack
docker compose up --build
clean: ## Remove caches and build output
rm -rf .pytest_cache .ruff_cache htmlcov .coverage coverage.xml
find . -type d -name __pycache__ -prune -exec rm -rf {} +
rm -rf dbt/gridpulse/target dbt/gridpulse/logs