Files
kadastr-17/_test_t3.py
2026-03-12 01:50:57 +05:00

47 lines
2.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Полный тест с Таблицей 3 (схемами)."""
from pathlib import Path
from services.data_loader import load_ki, load_table2, build_mif_index, load_table3
from services.form_filler import fill_form
from services.output_generator import make_filename, combine_forms, generate_table4
ki = load_ki("data/Исх.данные/Таблица1 КИ-Неустроева.xlsx")
rows = load_table2("data/Исх.данные/Таблица 2 Перечень выявленных исх.данные.xlsx")
mif_idx = build_mif_index("data/Исх.данные/1. 74 34 0400007 ГК вымпел-73")
tmpl = "data/ШАБЛОН ВЫЯВЛЕННЫЕ-1.xlsx"
out = Path("output")
out.mkdir(exist_ok=True)
print("Загружаем Таблицу 3...")
t3 = load_table3("data/Исх.данные/Таблица 3 ( для схем).xlsx")
print(f"Схем загружено: {len(t3)}")
print("Первые 3 ключа:", list(t3.keys())[:3])
generated, errors = [], []
for t2_row in rows:
zu_file = t2_row[0] if t2_row[0] else ""
kv = t2_row[1] if t2_row[1] else ""
if not zu_file:
continue
fname = make_filename(str(kv), str(zu_file))
out_path = out / fname
scheme = t3.get(str(zu_file).strip())
try:
fill_form(tmpl, str(out_path), ki, t2_row, mif_idx, zu_scheme=scheme)
has_scheme = "со схемой" if scheme else "без схемы"
generated.append({"name": fname, "path": str(out_path), "kv": str(kv), "zu_file": str(zu_file)})
print(f" OK {fname} ({has_scheme})")
except Exception as e:
errors.append((fname, str(e)))
import traceback; traceback.print_exc()
print(f" ERR {fname}: {e}")
print(f"\nСоздано: {len(generated)}, ошибок: {len(errors)}")
if errors:
print("ОШИБКИ:")
for n, e in errors:
print(f" {n}: {e}")
else:
combine_forms([r["path"] for r in generated], str(out / "ВСЕОРМЫ.xlsx"))
generate_table4(generated, str(out / "Таблица4_Перечень_форм.xlsx"))
print("Объединение и Таблица 4 — OK")