Spaces:
Running
Running
| # Talentry AI — common dev tasks | |
| PY ?= python3 | |
| VENV ?= .venv | |
| .PHONY: help venv install lint test smoke submission ui-dev serve docker-build docker-run clean | |
| help: | |
| @grep -E '^[a-zA-Z_-]+:.*##' $(MAKEFILE_LIST) | awk 'BEGIN{FS=":.*##"}{printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' | |
| venv: ## create the python venv | |
| $(PY) -m venv $(VENV) | |
| install: ## editable install with dev extras | |
| $(VENV)/bin/pip install -U pip | |
| $(VENV)/bin/pip install -e ".[dev]" | |
| lint: ## ruff + black check | |
| $(VENV)/bin/ruff check src tests | |
| $(VENV)/bin/black --check src tests | |
| test: ## run unit tests | |
| $(VENV)/bin/pytest -q | |
| smoke: ## end-to-end run on the 50-row fixture (top_k=10, non-strict) | |
| $(VENV)/bin/python -m talentry.cli.rank \ | |
| --candidates data/raw/sample_candidates.json \ | |
| --out data/output/smoke.csv --top-k 10 --quiet | |
| @head -1 data/output/smoke.csv && echo "..." && wc -l data/output/smoke.csv | |
| submission: ## produce the 100-row hackathon CSV (needs data/raw/candidates.jsonl) | |
| $(VENV)/bin/python -m talentry.cli.rank \ | |
| --candidates data/raw/candidates.jsonl \ | |
| --jd configs/job_description.txt \ | |
| --out data/output/submission.csv | |
| ui-dev: ## run the React UI in dev mode (proxies /api -> :7860) | |
| cd ui/talentry-space && npm install && npm run dev | |
| serve: ## run the FastAPI dev server on :7860 | |
| $(VENV)/bin/talentry-serve | |
| docker-build: ## build the HuggingFace Space image | |
| docker build -t talentry-ai:dev . | |
| docker-run: ## run the Docker image locally on :7860 | |
| docker run --rm -p 7860:7860 talentry-ai:dev | |
| clean: ## remove build artefacts | |
| rm -rf build dist *.egg-info data/output | |
| find . -type d -name __pycache__ -prune -exec rm -rf {} + | |