# Команды разработки arm-core. Backend — api/.venv; запуск из корня репозитория. VENV := api/.venv BIN := $(CURDIR)/$(VENV)/bin COMPOSE_FILE ?= ../docs/dev/docker-compose.yml # DBML относительно api/: и в основном workspace, и в worktree .wt/<срез>/ это соседний docs/ DBML ?= ../../docs/model/data-model-v5.13.dbml .PHONY: venv lint test test-integration dbml-check check check-full up migrate seed seed-dev # Python 3.11 (версия платформы); внутренние пакеты raisa_* вне банка недоступны — пропускаем их venv: cd api && uv venv --python 3.11 --allow-existing .venv cd api && grep -v '^raisa_' requirements.txt | uv pip install --python .venv/bin/python -r - cd api && grep -v '^-r' requirements-dev.txt | uv pip install --python .venv/bin/python -r - lint: cd api && $(BIN)/ruff check . cd api && $(BIN)/ruff format --check . cd api && $(BIN)/mypy src scripts test: cd api && $(BIN)/pytest -m "not integration" test-integration: cd api && $(BIN)/pytest -m integration # Сверка ORM с DBML (spec data-model): пустой вывод и код 0 — совпадение dbml-check: cd api && $(BIN)/python scripts/check_dbml_vs_orm.py $(DBML) check: lint test # TODO (задача 25): добавить фронт (lint/test/build web/), проверку миграций с нуля и откат, актуальность OpenAPI check-full: check dbml-check test-integration up: docker compose -f $(COMPOSE_FILE) up -d migrate: cd api && $(BIN)/alembic upgrade head seed: cd api && $(BIN)/python -m scripts.seed seed-dev: cd api && $(BIN)/python -m scripts.seed --dev