diff --git a/src/transform.py b/src/transform.py index e60b2c6..a94ebaf 100644 --- a/src/transform.py +++ b/src/transform.py @@ -10,7 +10,6 @@ Dieses Modul implementiert die Transformations-Pipeline: import logging import subprocess from pathlib import Path -from typing import Optional from datetime import datetime logger = logging.getLogger(__name__) @@ -65,13 +64,13 @@ class TransformationJob: self.diff_pdf_params = diff_pdf_params # Ausgabe-Verzeichnisse im Projektordner - self.output_dir = project_dir / "output" - self.valide_dir = project_dir / "valide" + self.new_dir = project_dir / "new" + self.ref_dir = project_dir / "ref" self.diff_dir = project_dir / "diff" # Stelle sicher, dass Ausgabe-Verzeichnisse existieren - self.output_dir.mkdir(exist_ok=True) - self.valide_dir.mkdir(exist_ok=True) + self.new_dir.mkdir(exist_ok=True) + self.ref_dir.mkdir(exist_ok=True) self.diff_dir.mkdir(exist_ok=True) # Dateinamen basierend auf XML-Datei + XSL-ID @@ -85,9 +84,9 @@ class TransformationJob: else: file_name_base = base_name - self.temp_fo = self.output_dir / f"{file_name_base}.fo" - self.output_pdf = self.output_dir / f"{file_name_base}.pdf" - self.valide_pdf = self.valide_dir / f"{file_name_base}.pdf" + self.temp_fo = self.new_dir / f"{file_name_base}.fo" + self.new_pdf = self.new_dir / f"{file_name_base}.pdf" + self.ref_pdf = self.ref_dir / f"{file_name_base}.pdf" self.diff_pdf = self.diff_dir / f"{file_name_base}.pdf" # Apache FOP Binaries (plattformabhängig) @@ -104,13 +103,13 @@ class TransformationJob: Prüft, ob die Transformation aktuell ist. Returns: - bool: True wenn Output-PDF existiert und aktueller ist als alle Inputs + bool: True wenn New-PDF existiert und aktueller ist als alle Inputs """ - if not self.output_pdf.exists(): - logger.debug(f"Output-PDF existiert nicht: {self.output_pdf}") + if not self.new_pdf.exists(): + logger.debug(f"New-PDF existiert nicht: {self.new_pdf}") return False - output_mtime = self.output_pdf.stat().st_mtime + output_mtime = self.new_pdf.stat().st_mtime # Prüfe XML-Datei xml_abs = self.project_dir / self.xml_file @@ -123,7 +122,7 @@ class TransformationJob: logger.debug(f"XSL-Datei ist neuer: {self.xsl_file}") return False - logger.debug(f"Transformation ist aktuell: {self.output_pdf}") + logger.debug(f"Transformation ist aktuell: {self.new_pdf}") return True def transform_saxon(self, force: bool = False) -> tuple[bool, str]: @@ -233,7 +232,7 @@ class TransformationJob: "-c", str(self.fop_conf) if self.fop_conf.exists() else "", "-r", "-fo", str(self.temp_fo), - "-pdf", str(self.output_pdf), + "-pdf", str(self.new_pdf), ] # Entferne leere Config-Parameter wenn fop.xconf nicht existiert @@ -260,16 +259,16 @@ class TransformationJob: logger.warning(f"Konnte FO-Datei nicht löschen: {e}") if result.returncode == 0: - # Wenn kein Valide-PDF existiert, erstelle es - if not self.valide_pdf.exists(): + # Wenn kein Ref-PDF existiert, erstelle es + if not self.ref_pdf.exists(): try: import shutil - shutil.copy2(self.output_pdf, self.valide_pdf) - logger.info(f"Valide-PDF erstellt: {self.valide_pdf}") + shutil.copy2(self.new_pdf, self.ref_pdf) + logger.info(f"Ref-PDF erstellt: {self.ref_pdf}") except Exception as e: - logger.warning(f"Konnte Valide-PDF nicht erstellen: {e}") + logger.warning(f"Konnte Ref-PDF nicht erstellen: {e}") - logger.info(f"PDF-Generierung erfolgreich: {self.output_pdf}") + logger.info(f"PDF-Generierung erfolgreich: {self.new_pdf}") return True, "Erfolgreich" else: error_msg = f"FOP-Fehler (Exit {result.returncode}):\nStdOut: {result.stdout}\nStdErr: {result.stderr}" @@ -287,19 +286,19 @@ class TransformationJob: def compare_pdf(self) -> tuple[bool, str]: """ - Vergleicht Output-PDF mit Valide-PDF und erstellt ggf. Diff-PDF. + Vergleicht New-PDF mit Ref-PDF und erstellt ggf. Diff-PDF. Returns: tuple[bool, str]: (PDFs sind identisch, Fehlermeldung/Info) """ # Prüfe ob beide PDFs existieren - if not self.valide_pdf.exists(): - info_msg = "Kein Valide-PDF vorhanden (wird beim nächsten Build erstellt)" + if not self.ref_pdf.exists(): + info_msg = "Kein Ref-PDF vorhanden (wird beim nächsten Build erstellt)" logger.info(info_msg) return True, info_msg - if not self.output_pdf.exists(): - error_msg = f"Output-PDF nicht gefunden: {self.output_pdf}" + if not self.new_pdf.exists(): + error_msg = f"New-PDF nicht gefunden: {self.new_pdf}" logger.error(error_msg) return False, error_msg @@ -309,8 +308,8 @@ class TransformationJob: cmd_compare = [ str(self.diff_pdf_path), *self.diff_pdf_params, - str(self.valide_pdf), - str(self.output_pdf), + str(self.ref_pdf), + str(self.new_pdf), ] logger.debug(f"Kommandozeile Vergleich: {' '.join(cmd_compare)}") @@ -345,8 +344,8 @@ class TransformationJob: f"--output-diff={self.diff_pdf}", *self.diff_pdf_params, "--mark-differences", - str(self.valide_pdf), - str(self.output_pdf), + str(self.ref_pdf), + str(self.new_pdf), ] logger.debug(f"Kommandozeile Diff: {' '.join(cmd_diff)}") @@ -394,7 +393,7 @@ class TransformationJob: "xml_file": str(self.xml_file), "steps": {}, "duration": None, - "output_pdf": str(self.output_pdf) if self.output_pdf.exists() else None, + "new_pdf": str(self.new_pdf) if self.new_pdf.exists() else None, "diff_pdf": str(self.diff_pdf) if self.diff_pdf.exists() else None, } diff --git a/src/ui/MainWindow.py b/src/ui/MainWindow.py index cec9fe9..945002f 100644 --- a/src/ui/MainWindow.py +++ b/src/ui/MainWindow.py @@ -5,7 +5,6 @@ import polars as pl import shutil import hashlib import logging -from concurrent.futures import ThreadPoolExecutor from typing import List from PySide6.QtCore import Qt, QSize, QThread, Signal @@ -2538,7 +2537,7 @@ class MainWindow(QMainWindow): QMessageBox.information( self, "Bereits zugeordnet", - f"Die XML-Datei mit gleichem Inhalt ist bereits in allen ausgewählten XSL-Knoten vorhanden." + "Die XML-Datei mit gleichem Inhalt ist bereits in allen ausgewählten XSL-Knoten vorhanden." ) except Exception as e: