"""Прогон извлечения по всему архиву: сколько позиций берёт каждый формат.""" import sys from pathlib import Path REPO = Path(__file__).resolve().parents[2] sys.path.insert(0, str(REPO)) from etl.extractors import extract files = sorted((REPO / "data/raw").glob("*")) total = 0 for path in files: doc = extract(str(path)) total += len(doc.rows) tiers = sorted({t for row in doc.rows for t in row.prices}) print(f"\n{'=' * 68}") print( f"{path.name} [{doc.file_format}] партнёр='{doc.partner_name}' дата={doc.effective_date}" ) print(f" позиций: {len(doc.rows)} | тарифы: {tiers}") if doc.parse_log: print(f" лог: {doc.parse_log[:2]}") for row in doc.rows[:3]: print( f" код={row.service_code_source!r} «{row.service_name_raw[:40]}» {row.prices} секц={row.section!r}" ) print(f"\n{'=' * 68}\nИТОГО позиций по архиву: {total}")