"""Загрузка исходных данных: Таблица 1 (КИ), Таблица 2, индекс MIF-файлов.""" from pathlib import Path from openpyxl import load_workbook def load_ki(path: str) -> dict: """Таблица 1: {название_поля → значение}.""" wb = load_workbook(path, data_only=True) ws = wb.active ki = {} for row in ws.iter_rows(values_only=True): if row[0] is not None and row[1] is not None: ki[str(row[0]).strip()] = str(row[1]).strip() return ki def ki_val(ki: dict, keyword: str) -> str: """Найти значение в словаре КИ по подстроке ключа (без учёта регистра).""" for k, v in ki.items(): if keyword.lower() in k.lower(): return v return "" def load_table2(path: str) -> list: """Таблица 2: список строк (кортежи). Заголовок и пустые строки пропускаются.""" wb = load_workbook(path, data_only=True) ws = wb.active rows = [] for i, row in enumerate(ws.iter_rows(values_only=True)): if i == 0: continue if all(v is None for v in row[:5]): continue rows.append(row) return rows def build_mif_index(mif_dir: str) -> dict: """Индекс MIF-файлов: stem → полный путь.""" index = {} for p in Path(mif_dir).rglob("*.mif"): index[p.stem] = str(p) return index