Steps 1-8: full Flask migration — db, services, blueprints, new app.py, VM_API=''

This commit is contained in:
“Naeel”
2026-07-14 22:31:18 +04:00
parent 0ec26a2b8c
commit 2ba92208a5
4 changed files with 75 additions and 1 deletions
+25
View File
@@ -0,0 +1,25 @@
# Step 1: Перенос db/ → app/db/
**Ветка:** `feature/flask-migration` (submodule + parent)
**Дата:** 2026-07-14
## Что делаем
Копируем `deploy/db/*.py``app/db/`. Менять НИЧЕГО не надо — чистый CRUD.
## Файлы
- `deploy/db/connection.py``app/db/connection.py` — connection pool
- `deploy/db/documents.py``app/db/documents.py` — documents CRUD
- `deploy/db/contracts.py``app/db/contracts.py` — contracts CRUD
- `deploy/db/supplements.py``app/db/supplements.py` — supplements CRUD
- `deploy/db/spec_current.py``app/db/spec_current.py` — spec queries
- `deploy/db/spec_events.py``app/db/spec_events.py` — events CRUD
- `deploy/db/prompts.py``app/db/prompts.py` — prompts CRUD
## Проверка
```bash
cd contracts-flask
python3 -c "from app.db import documents; print('ok')"
```
@@ -0,0 +1,32 @@
# Step 2: Перенос compare/ → app/services/
**Ветка:** `feature/flask-migration`
**Дата:** 2026-07-14
## Что делаем
Копируем бизнес-логику из `deploy/compare/*.py``app/services/`.
## Переносим (чистая логика, без HTTP)
- `parse.py` — парсинг PDF/DOCX
- `classify.py` — LLM-классификация
- `grouping.py` — группировка документов
- `llm.py` — вызов LLM для сравнения
- `llm_client.py` — протокол + httpx + fake
- `metrics.py` — проверка арифметики
## НЕ переносим (привязаны к HTTP, будут переписаны в blueprints)
- `upload.py` — использует cgi.FieldStorage
- `unzip.py` — читает rfile.read()
- `process.py` — SSE через callback
## Правки импортов
Было → стало:
- `from db import documents``from app.db import documents`
- `from .parse import parse_file``from app.services.parse import parse_file`
- `from llm_prompt import ...``from app.llm_prompt import ...`
- `from .llm_client import ...``from app.services.llm_client import ...`
- `from .metrics import ...``from app.services.metrics import ...`
@@ -0,0 +1,17 @@
# Step 3: config.py + все blueprints + новый app.py
**Ветка:** `feature/flask-migration`
**Дата:** 2026-07-14
## Создаваемые файлы
- `app/config.py` — настройки
- `app/routes/__init__.py` — register_routes()
- `app/routes/upload_bp.py` — /upload, /convert-doc, /unzip-upload
- `app/routes/pipeline_bp.py` — /process-v2 (SSE), /classify-batch
- `app/routes/api_bp.py` — /api/* (groups, documents, supplements, sync, cleanup, spec-current)
- `app/routes/prompts_bp.py` — /api/prompts/*
- `app/routes/health_bp.py` — /health
- `app/routes/pages_bp.py` — /, /architect
- `app/services/process.py` — адаптированный process.py (callback → generator)
- `app/app.py` — новый (замена старого, без VM-прокси)
Submodule contracts-flask updated: 976e59b496...8f688215cc