info 93f9bb90dd Fix: QApplication.processEvents() Anti-Pattern entfernt
_close_all_pdf_documents() führt bereits doc.close() + gc.collect() durch,
wodurch Dateihandles freigegeben werden. Das nachfolgende processEvents()
war redundant und birgt das Risiko von Re-Entrant-Events.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 20:20:36 +01:00
2026-03-07 20:10:59 +01:00
2025-05-20 11:24:07 +02:00

DocuMentor

Professionelle XSL-Transformations-Verwaltung und PDF-Generierung

DocuMentor (ehemals xsl-validator) ist eine leistungsstarke PySide6-basierte Desktop-Anwendung zur Verwaltung und Validierung von XSL-Transformationen mit automatischer PDF-Generierung. Die Anwendung bietet eine intuitive GUI zur Konfiguration von Transformations-Toolchains (Saxon, Apache FOP, diff-pdf) und zur Verwaltung komplexer PDF-Generierungsprojekte mit PostgreSQL-Datenbankintegration.

Features

🌳 Hierarchische Projektverwaltung

  • Organisieren Sie Ihre XSL-Transformationen in einer übersichtlichen Baumstruktur
  • Flexible Workflow-Definitionen mit verschachtelten Knoten
  • Projektspezifische Konfiguration mit project.yaml

Asynchrone Batch-Verarbeitung

  • Verarbeiten Sie große Mengen von XML-Dateien im Hintergrund
  • Fortschrittsanzeige für lange Transformationen
  • 4x schnellere XSLT-Transformationen durch Worker-Pool-Architektur

🔍 Intelligente Duplikatserkennung

  • Automatische Hash-basierte Erkennung von identischen XML-Dateien (Blake2b)
  • Verhindert Redundanzen und spart Speicherplatz
  • Asynchrone Hash-Berechnung im Hintergrund

📄 PDF-Vergleichsansicht

  • Drei-Panel-Ansicht (Referenz, Diff, Neu)
  • Alpha-Blending für visuellen Vergleich
  • Zoom- und Pan-Funktionalität

🗄️ PostgreSQL-Integration

  • Nahtlose Datenbankanbindung mit Polars und ConnectorX
  • Performante SQL-Abfragen und Datenverarbeitung
  • SSL-Modus-Unterstützung

🛠️ Konfigurierbare Toolchains

  • Flexible Verwaltung von Saxon, Apache FOP und diff-pdf
  • Versionierung von Tools
  • Plattformübergreifende Unterstützung (Linux, Windows, macOS)

🎨 Modernes UI

  • Dark-Theme-Unterstützung via qdarktheme
  • Drag-and-Drop für XML-Dateien
  • Responsive und intuitive Benutzeroberfläche

Installation

Voraussetzungen

  • Python 3.13 oder höher
  • uv Paketmanager

Abhängigkeiten installieren

# Mit uv (empfohlen)
uv sync

# Oder mit pip
pip install -e .

Externe Tools (optional)

Für die volle Funktionalität benötigen Sie:

  • Saxon-HE: XSLT 3.0 Prozessor (Download)
  • Apache FOP: PDF-Generierung aus XSL-FO (Download)
  • diff-pdf: PDF-Vergleich (GitHub)

Verwendung

Anwendung starten

uv run python src/main.py

Projekt erstellen

  1. Legen Sie ein neues Projekt an
  2. Konfigurieren Sie Ihre Tools (Saxon, Apache FOP) in den Einstellungen
  3. Organisieren Sie XSL-Stylesheets und XML-Dateien in der Baumstruktur
  4. Führen Sie Transformationen aus

Konfiguration

Die Anwendung speichert Konfigurationsdateien an folgenden Orten:

  • Linux: ~/.config/DocuMentor/config.json
  • Windows: %APPDATA%\DocuMentor\config.json
  • macOS: ~/Library/Application Support/DocuMentor/config.json

Projektdaten werden in project.yaml im jeweiligen Projektverzeichnis gespeichert.

Entwicklung

Code-Qualität

# Code-Style prüfen
uv run ruff check

# Code formatieren
uv run ruff format

Tests

# Hash-Implementierung testen
uv run python test_hash_implementation.py

# Duplikatserkennung testen
uv run python test_xml_hash_duplicate_detection.py

Architektur

  • PySide6: Native Qt-basierte GUI
  • Pydantic: Typsichere Konfigurationsverwaltung
  • Polars: Lightning-fast DataFrame-Verarbeitung
  • Blake2b: Kryptographische Hash-Funktion für Integritätsprüfung

Siehe CLAUDE.md für detaillierte Entwicklerdokumentation.

Lizenz

DocuMentor ist unter der MIT License lizenziert.

Third-Party-Lizenzen

Diese Software verwendet folgende Open-Source-Bibliotheken:

  • PySide6 - LGPL-3.0 OR GPL-2.0 OR GPL-3.0
  • Pydantic - MIT License
  • Polars - MIT License
  • pyqtdarktheme - MIT License
  • Weitere siehe THIRD_PARTY_LICENSES.txt

Externe Tools (separat zu installieren):

  • Saxon-HE - Mozilla Public License 2.0
  • Apache FOP - Apache License 2.0

Vollständige Lizenzanalyse: LICENSES.md

Beiträge

Beiträge sind willkommen! Bitte beachten Sie:

  1. Fork des Repositories
  2. Feature-Branch erstellen (git checkout -b feature/amazing-feature)
  3. Änderungen committen (git commit -m 'Add amazing feature')
  4. Branch pushen (git push origin feature/amazing-feature)
  5. Pull Request öffnen

Code-Konventionen

  • Deutsche Sprache für UI-Texte und Kommentare
  • pathlib.Path für Dateipfade
  • Zeilenlänge: 120 Zeichen (Ruff-Konfiguration)
  • UI-Dateien (*_ui.py) werden automatisch generiert - nicht manuell bearbeiten!

Support

Bei Fragen, Problemen oder Feature-Requests:

Changelog

Version 0.1.0 (2025-01)

  • Hierarchische Projektverwaltung
  • Asynchrone Batch-Verarbeitung
  • Blake2b-Hash-basierte Duplikatserkennung
  • PDF-Vergleichsansicht
  • PostgreSQL-Integration
  • Worker-Pool für 4x schnellere Transformationen
  • Dark-Theme-Unterstützung

Autoren

  • [Ihr Name] - Initial work

Danksagungen

Vielen Dank an alle Entwickler der verwendeten Open-Source-Bibliotheken!


DocuMentor - Professionelle XSL-Transformations-Verwaltung für anspruchsvolle Projekte

S
Description
No description provided
Readme MIT 10 MiB
1.7.3 Latest
2026-05-31 19:00:00 +02:00
Languages
Python 81.9%
HTML 15.8%
CSS 2%
Inno Setup 0.3%