parse_heat_sheet брал правейшее число строки — на проде это оказалась служебная колонка шаблона ЕИАС Flag_Row_Size (высоты строк), и в heat_system_reserves попали рубрики анкеты («Количество заявок»=74, кнопка «Добавить систему»=15) как тепло-системы. Переписан column-aligned по реальной сетке (снята из raw всех 4 публикаций): строка «Централизованная система» даёт имена систем по колонкам j≥6 (текст с буквой), строка №5 «Резерв мощности…» — Гкал/ч из тех же колонок. Нулевой резерв сохраняется (честный дефицит), None/текст — скип системы. Тесты пересобраны из реальной сетки ЕТК (СТ № 56→0.0, СТ № 54→3.26, СТ № 60→11.28) + регрессия на рубрики. |
||
|---|---|---|
| .. | ||
| api | ||
| core | ||
| models | ||
| observability | ||
| resources/certs | ||
| schemas | ||
| scrapers | ||
| services | ||
| templates | ||
| workers | ||
| __init__.py | ||
| main.py | ||