/
whippit
/
XSD-Description-Inserter
Обзор
Документация
Войти
/
whippit
/
XSD-Description-Inserter
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
services/processor.py
56 строк
2 KB
Fedor
Initial commit
08 июл 2026, 21:16
08 июл 2026, 21:16
5c96f93
Код
Авторство
О чём код?
from pathlib import Path from services.excel_reader import ExcelReader from services.matcher import Matcher from services.xsd_parser import XSDParser from services.annotation_service import AnnotationService from services.xsd_updater import XSDUpdater from utils.logger import get_logger class Processor: def __init__(self): self.log = get_logger() self.excel_reader = ExcelReader() self.matcher = Matcher() self.parser = XSDParser() self.annotator = AnnotationService() self.writer = XSDUpdater() def process(self, xsd_path: Path, excel_folder: Path): self.log.info(f"Начало процесса: {xsd_path.name}") excel_files = list(excel_folder.glob("*.xlsx")) excel_file = self.matcher.find_match(xsd_path, excel_files) if not excel_file: self.log.warning("Excel не найден") return self.log.info(f"Совпадений Excel: {excel_file.name}") mapping = self.excel_reader.read(excel_file) tree = self.parser.load(xsd_path) elements = self.parser.find_elements(tree) updated = 0 for el in elements: name = el.get("name") if not name: continue key = "".join(c.lower() for c in name if c.isalnum()) if key in mapping: self.annotator.add_or_update(el, mapping[key]) updated += 1 output = self.writer.save(tree, xsd_path) self.log.info(f"Обновлено: {updated}") self.log.info(f"Сохранено: {output}") return { "updated": updated, "output": str(output) }