test
This commit is contained in:
46
services/data_loader.py
Normal file
46
services/data_loader.py
Normal file
@@ -0,0 +1,46 @@
|
||||
"""Загрузка исходных данных: Таблица 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
|
||||
Reference in New Issue
Block a user