Lizenzierung: MIT License und Dokumentation
Projekt unter MIT License veröffentlicht: - LICENSE-Datei mit MIT-Lizenztext - LICENSES.md mit detaillierter Lizenzanalyse aller Dependencies - THIRD_PARTY_LICENSES.txt mit allen verwendeten Bibliotheken - README.md mit vollständiger Projektdokumentation - pyproject.toml mit Lizenz-Metadaten aktualisiert Lizenz-Übersicht: - PySide6: LGPL-3.0/GPL-2.0/GPL-3.0 (kompatibel mit MIT) - Pydantic, Polars, pyqtdarktheme: MIT - PyArrow: Apache 2.0 - Saxon-HE: MPL-2.0 (externes Tool) - Apache FOP: Apache 2.0 (externes Tool) Keine Einschränkungen durch Dependencies - MIT License möglich. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 [Ihr Name / Your Name]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
+260
@@ -0,0 +1,260 @@
|
|||||||
|
# Lizenzübersicht für DocuMentor
|
||||||
|
|
||||||
|
## Verwendete Bibliotheken und ihre Lizenzen
|
||||||
|
|
||||||
|
### Python-Abhängigkeiten (aus pyproject.toml)
|
||||||
|
|
||||||
|
| Bibliothek | Version | Lizenz | Einschränkungen |
|
||||||
|
|------------|---------|--------|-----------------|
|
||||||
|
| **PySide6** | ≥6.9.1 | **LGPL-3.0 ODER GPL-2.0 ODER GPL-3.0** | ⚠️ Copyleft-Lizenz, siehe unten |
|
||||||
|
| Pydantic | ≥2.9.1 | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| Pydantic-Settings | ≥2.9.1 | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| Pydantic-YAML | ≥1.5.1 | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| Polars | ≥1.31.0 | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| ConnectorX | (via Polars) | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| PyArrow | (via Polars) | Apache 2.0 | ✅ Keine Einschränkungen |
|
||||||
|
| pyqtdarktheme | ≥2.1.0 | MIT | ✅ Keine Einschränkungen |
|
||||||
|
| Ruff | ≥0.14.8 | MIT | ✅ Keine Einschränkungen (nur Dev) |
|
||||||
|
|
||||||
|
### Externe Tools (nicht in Python integriert)
|
||||||
|
|
||||||
|
| Tool | Lizenz | Verwendung | Einschränkungen |
|
||||||
|
|------|--------|------------|-----------------|
|
||||||
|
| **Saxon-HE** | Mozilla Public License 2.0 (MPL-2.0) | XSLT-Transformationen | ⚠️ Weak Copyleft |
|
||||||
|
| **Apache FOP** | Apache License 2.0 | PDF-Generierung | ✅ Keine Einschränkungen |
|
||||||
|
| diff-pdf | GPL-2.0 (vermutlich) | PDF-Vergleich | ⚠️ Nur externes Tool |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Kritische Lizenz: PySide6 (LGPL-3.0)
|
||||||
|
|
||||||
|
### Was bedeutet LGPL-3.0 für DocuMentor?
|
||||||
|
|
||||||
|
**LGPL (Lesser GNU Public License)** ist eine "schwächere" Version der GPL und wurde speziell für Bibliotheken entwickelt.
|
||||||
|
|
||||||
|
#### ✅ Was ist ERLAUBT:
|
||||||
|
- **Kommerzielle Nutzung** - Du kannst DocuMentor verkaufen
|
||||||
|
- **Proprietärer Code** - Dein Code muss NICHT Open Source sein
|
||||||
|
- **Private Nutzung** - Keine Verpflichtungen
|
||||||
|
- **Dynamisches Linking** - In Python automatisch gegeben (via pip/import)
|
||||||
|
|
||||||
|
#### ⚠️ Was ist ERFORDERLICH:
|
||||||
|
1. **LGPL-Lizenztext beilegen** - Du musst die LGPL-Lizenz mit verteilen
|
||||||
|
2. **Copyright-Hinweise** - Erwähne PySide6 und Qt in deiner Software
|
||||||
|
3. **Nutzern Bibliotheks-Austausch ermöglichen** - Bei Python automatisch erfüllt, da:
|
||||||
|
- Nutzer können `pip install pyside6==andere-version` ausführen
|
||||||
|
- Python-Module sind dynamisch geladen
|
||||||
|
4. **Änderungen an PySide6 veröffentlichen** - Falls du PySide6 selbst änderst (sehr unwahrscheinlich)
|
||||||
|
|
||||||
|
#### ❌ Was ist NICHT erforderlich:
|
||||||
|
- **Dein eigener Code** muss NICHT unter LGPL stehen
|
||||||
|
- **Dein Source Code** muss NICHT veröffentlicht werden
|
||||||
|
- **Deine Änderungen** an DocuMentor müssen NICHT Open Source sein
|
||||||
|
|
||||||
|
### Praktische Umsetzung für Python-Anwendungen
|
||||||
|
|
||||||
|
Da Python-Pakete über pip installiert werden und dynamisch importiert werden, sind die LGPL-Anforderungen bereits erfüllt:
|
||||||
|
- ✅ Dynamisches Linking durch `import PySide6`
|
||||||
|
- ✅ Nutzer können andere PySide6-Versionen installieren
|
||||||
|
- ✅ Keine statische Kompilierung in Binary
|
||||||
|
|
||||||
|
**Fazit:** Du kannst DocuMentor unter praktisch jeder Lizenz veröffentlichen, auch proprietär.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Empfohlene Lizenzen für DocuMentor
|
||||||
|
|
||||||
|
### Option 1: MIT License (EMPFOHLEN) ⭐
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Einfachste und permissivste Lizenz
|
||||||
|
- ✅ Kompatibel mit LGPL und allen anderen verwendeten Lizenzen
|
||||||
|
- ✅ Erlaubt kommerzielle Nutzung ohne Einschränkungen
|
||||||
|
- ✅ Kurz und leicht verständlich
|
||||||
|
- ✅ Sehr verbreitet in der Open-Source-Community
|
||||||
|
- ✅ Gleiche Lizenz wie die meisten Dependencies (Pydantic, Polars, etc.)
|
||||||
|
|
||||||
|
**Nachteile:**
|
||||||
|
- Kein Patent-Schutz
|
||||||
|
- Keine Copyleft-Schutz (andere können proprietäre Forks erstellen)
|
||||||
|
|
||||||
|
**Wann verwenden:**
|
||||||
|
Wenn du maximale Freiheit für Nutzer möchtest und Open Source fördern willst, ohne strenge Bedingungen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Option 2: Apache License 2.0
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Kompatibel mit allen Dependencies
|
||||||
|
- ✅ Expliziter Patent-Schutz
|
||||||
|
- ✅ Erlaubt kommerzielle Nutzung
|
||||||
|
- ✅ Professioneller für größere Projekte
|
||||||
|
- ✅ Gleiche Lizenz wie Apache FOP
|
||||||
|
|
||||||
|
**Nachteile:**
|
||||||
|
- Etwas komplexer als MIT
|
||||||
|
- Erfordert NOTICE-Datei für Änderungen
|
||||||
|
|
||||||
|
**Wann verwenden:**
|
||||||
|
Wenn du Patent-Schutz möchtest und ein professionelleres Image für Enterprise-Nutzer brauchst.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Option 3: GPL-3.0 (Copyleft)
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Kompatibel mit PySide6 (gleiche Lizenz)
|
||||||
|
- ✅ Starker Copyleft-Schutz - Alle Derivate müssen Open Source sein
|
||||||
|
- ✅ Schützt vor proprietären Forks
|
||||||
|
- ✅ Für reine Open-Source-Projekte ideal
|
||||||
|
|
||||||
|
**Nachteile:**
|
||||||
|
- ❌ Strenge Copyleft-Anforderungen
|
||||||
|
- ❌ Nutzer können DocuMentor nicht in proprietäre Software integrieren
|
||||||
|
- ❌ Weniger flexibel für kommerzielle Nutzung
|
||||||
|
|
||||||
|
**Wann verwenden:**
|
||||||
|
Wenn du sicherstellen willst, dass alle Modifikationen Open Source bleiben.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Option 4: LGPL-3.0
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Gleiche Lizenz wie PySide6 (konsistent)
|
||||||
|
- ✅ Schwächerer Copyleft als GPL
|
||||||
|
- ✅ Erlaubt Verwendung in proprietärer Software
|
||||||
|
|
||||||
|
**Nachteile:**
|
||||||
|
- Komplexere Anforderungen als MIT/Apache
|
||||||
|
- Weniger verbreitet für Anwendungen (eher für Bibliotheken)
|
||||||
|
|
||||||
|
**Wann verwenden:**
|
||||||
|
Wenn du einen Kompromiss zwischen GPL und MIT möchtest.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lizenz-Kompatibilitätsmatrix
|
||||||
|
|
||||||
|
```
|
||||||
|
DocuMentor Lizenz → Kompatibilität mit Dependencies
|
||||||
|
|
||||||
|
MIT ✅ Kompatibel mit allen
|
||||||
|
Apache 2.0 ✅ Kompatibel mit allen
|
||||||
|
GPL-3.0 ✅ Kompatibel mit allen
|
||||||
|
LGPL-3.0 ✅ Kompatibel mit allen
|
||||||
|
Proprietär ✅ Kompatibel mit allen (LGPL-Bedingungen beachten)
|
||||||
|
```
|
||||||
|
|
||||||
|
Alle genannten Lizenzen sind mit den verwendeten Bibliotheken kompatibel!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Konkrete Empfehlung
|
||||||
|
|
||||||
|
### Für DocuMentor: **MIT License** ⭐
|
||||||
|
|
||||||
|
**Begründung:**
|
||||||
|
1. ✅ Die meisten Dependencies (Pydantic, Polars, pyqtdarktheme) sind MIT-lizenziert
|
||||||
|
2. ✅ LGPL-3.0 (PySide6) erlaubt die Verwendung in MIT-lizenzierter Software
|
||||||
|
3. ✅ Maximale Freiheit für Nutzer und Entwickler
|
||||||
|
4. ✅ Einfach und unkompliziert
|
||||||
|
5. ✅ Fördert Adoption und Beiträge
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nächste Schritte
|
||||||
|
|
||||||
|
### 1. LICENSE-Datei erstellen
|
||||||
|
|
||||||
|
Erstelle eine `LICENSE` Datei im Root-Verzeichnis mit dem MIT-Lizenztext:
|
||||||
|
|
||||||
|
```
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 [Dein Name]
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. pyproject.toml aktualisieren
|
||||||
|
|
||||||
|
```toml
|
||||||
|
[project]
|
||||||
|
name = "DocuMentor"
|
||||||
|
version = "0.1.0"
|
||||||
|
license = {text = "MIT"} # Füge diese Zeile hinzu
|
||||||
|
# ... rest bleibt gleich
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Copyright-Hinweise hinzufügen
|
||||||
|
|
||||||
|
Füge in jede Quellcode-Datei einen Header ein:
|
||||||
|
|
||||||
|
```python
|
||||||
|
# Copyright (c) 2025 [Dein Name]
|
||||||
|
# Licensed under the MIT License
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. THIRD_PARTY_LICENSES.txt erstellen
|
||||||
|
|
||||||
|
Erstelle eine Datei, die alle verwendeten Bibliotheken und ihre Lizenzen auflistet:
|
||||||
|
|
||||||
|
```
|
||||||
|
DocuMentor verwendet folgende Open-Source-Bibliotheken:
|
||||||
|
|
||||||
|
1. PySide6 - LGPL-3.0 OR GPL-2.0 OR GPL-3.0
|
||||||
|
https://www.qt.io/qt-for-python
|
||||||
|
|
||||||
|
2. Pydantic - MIT License
|
||||||
|
https://github.com/pydantic/pydantic
|
||||||
|
|
||||||
|
3. Polars - MIT License
|
||||||
|
https://github.com/pola-rs/polars
|
||||||
|
|
||||||
|
... (alle weiteren Bibliotheken)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Externe Tools (Saxon, Apache FOP)
|
||||||
|
|
||||||
|
**Wichtig:** Saxon-HE und Apache FOP sind **externe Programme**, die nicht in DocuMentor eingebettet sind.
|
||||||
|
|
||||||
|
- **Saxon-HE**: MPL-2.0 - Du darfst es verwenden, musst aber nicht deine Software unter MPL lizenzieren
|
||||||
|
- **Apache FOP**: Apache 2.0 - Kompatibel mit MIT
|
||||||
|
|
||||||
|
Da diese Tools nur **aufgerufen** werden (nicht eingebettet), hast du keine zusätzlichen Verpflichtungen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quellen
|
||||||
|
|
||||||
|
- [PySide6 License](https://doc.qt.io/qtforpython-6/licenses.html)
|
||||||
|
- [Pydantic MIT License](https://github.com/pydantic/pydantic/blob/main/LICENSE)
|
||||||
|
- [Polars License](https://github.com/pola-rs/polars)
|
||||||
|
- [PyQtDarkTheme License](https://github.com/5yutan5/PyQtDarkTheme)
|
||||||
|
- [Apache FOP License](https://xmlgraphics.apache.org/fop/license.html)
|
||||||
|
- [Saxon License](https://github.com/Saxonica/Saxon-HE)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Stand:** Januar 2025
|
||||||
|
**Autor:** Lizenzanalyse für DocuMentor
|
||||||
@@ -0,0 +1,191 @@
|
|||||||
|
# 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](https://github.com/astral-sh/uv) Paketmanager
|
||||||
|
|
||||||
|
### Abhängigkeiten installieren
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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](https://www.saxonica.com/download/))
|
||||||
|
- **Apache FOP**: PDF-Generierung aus XSL-FO ([Download](https://xmlgraphics.apache.org/fop/download.html))
|
||||||
|
- **diff-pdf**: PDF-Vergleich ([GitHub](https://github.com/vslavik/diff-pdf))
|
||||||
|
|
||||||
|
## Verwendung
|
||||||
|
|
||||||
|
### Anwendung starten
|
||||||
|
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Code-Style prüfen
|
||||||
|
uv run ruff check
|
||||||
|
|
||||||
|
# Code formatieren
|
||||||
|
uv run ruff format
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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](CLAUDE.md) für detaillierte Entwicklerdokumentation.
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
DocuMentor ist unter der [MIT License](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](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](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:
|
||||||
|
|
||||||
|
- GitHub Issues: [Issue Tracker](https://github.com/[your-repo]/issues)
|
||||||
|
- Dokumentation: [docs/](docs/)
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|||||||
@@ -0,0 +1,188 @@
|
|||||||
|
================================================================================
|
||||||
|
THIRD PARTY LICENSES
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
DocuMentor verwendet die folgenden Open-Source-Bibliotheken und Tools.
|
||||||
|
Vielen Dank an alle Entwickler und Maintainer dieser Projekte!
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Python-Abhängigkeiten
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
1. PySide6
|
||||||
|
Version: >=6.9.1
|
||||||
|
Lizenz: LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||||
|
Webseite: https://www.qt.io/qt-for-python
|
||||||
|
GitHub: https://github.com/qt/pyside-pyside-setup
|
||||||
|
Beschreibung: Qt for Python - Official Python bindings for Qt
|
||||||
|
Copyright: Copyright (C) The Qt Company Ltd.
|
||||||
|
|
||||||
|
2. Pydantic
|
||||||
|
Version: >=2.9.1
|
||||||
|
Lizenz: MIT License
|
||||||
|
Webseite: https://pydantic.dev
|
||||||
|
GitHub: https://github.com/pydantic/pydantic
|
||||||
|
Beschreibung: Data validation using Python type hints
|
||||||
|
Copyright: Copyright (c) 2017 to present Pydantic Services Inc.
|
||||||
|
|
||||||
|
3. Pydantic-Settings
|
||||||
|
Version: >=2.9.1
|
||||||
|
Lizenz: MIT License
|
||||||
|
GitHub: https://github.com/pydantic/pydantic-settings
|
||||||
|
Beschreibung: Settings management using Pydantic
|
||||||
|
Copyright: Copyright (c) 2023 Pydantic Services Inc.
|
||||||
|
|
||||||
|
4. Pydantic-YAML
|
||||||
|
Version: >=1.5.1
|
||||||
|
Lizenz: MIT License
|
||||||
|
GitHub: https://github.com/NowanIlfideme/pydantic-yaml
|
||||||
|
Beschreibung: YAML support for Pydantic models
|
||||||
|
Copyright: Copyright (c) 2020 Anatoly Makarevich
|
||||||
|
|
||||||
|
5. Polars
|
||||||
|
Version: >=1.31.0
|
||||||
|
Lizenz: MIT License
|
||||||
|
Webseite: https://pola.rs
|
||||||
|
GitHub: https://github.com/pola-rs/polars
|
||||||
|
Beschreibung: Lightning-fast DataFrame library
|
||||||
|
Copyright: Copyright (c) 2025 Ritchie Vink
|
||||||
|
|
||||||
|
6. ConnectorX (via Polars)
|
||||||
|
Lizenz: MIT License
|
||||||
|
GitHub: https://github.com/sfu-db/connector-x
|
||||||
|
Beschreibung: Fast database connector for DataFrames
|
||||||
|
Copyright: Copyright (c) 2021 SFU Database Group
|
||||||
|
|
||||||
|
7. PyArrow (via Polars)
|
||||||
|
Lizenz: Apache License 2.0
|
||||||
|
Webseite: https://arrow.apache.org/docs/python/
|
||||||
|
GitHub: https://github.com/apache/arrow
|
||||||
|
Beschreibung: Python library for Apache Arrow
|
||||||
|
Copyright: Copyright (c) 2016-2025 The Apache Software Foundation
|
||||||
|
|
||||||
|
8. pyqtdarktheme
|
||||||
|
Version: >=2.1.0
|
||||||
|
Lizenz: MIT License
|
||||||
|
GitHub: https://github.com/5yutan5/PyQtDarkTheme
|
||||||
|
Beschreibung: A flat dark theme for PySide and PyQt
|
||||||
|
Copyright: Copyright (c) 2021 Yunosuke Ohsugi
|
||||||
|
|
||||||
|
9. Ruff (Development)
|
||||||
|
Version: >=0.14.8
|
||||||
|
Lizenz: MIT License
|
||||||
|
GitHub: https://github.com/astral-sh/ruff
|
||||||
|
Beschreibung: An extremely fast Python linter and code formatter
|
||||||
|
Copyright: Copyright (c) 2022 Charlie Marsh
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Externe Tools (nicht eingebettet)
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
Diese Tools werden als externe Programme aufgerufen und sind nicht
|
||||||
|
Bestandteil der DocuMentor-Distribution. Sie müssen separat installiert werden.
|
||||||
|
|
||||||
|
1. Saxon-HE (Home Edition)
|
||||||
|
Lizenz: Mozilla Public License 2.0 (MPL-2.0)
|
||||||
|
Webseite: https://www.saxonica.com/
|
||||||
|
GitHub: https://github.com/Saxonica/Saxon-HE
|
||||||
|
Beschreibung: XSLT 3.0 and XQuery 3.1 processor
|
||||||
|
Copyright: Copyright (c) Saxonica Limited
|
||||||
|
Hinweis: Für XSLT-Transformationen verwendet
|
||||||
|
|
||||||
|
2. Apache FOP (Formatting Objects Processor)
|
||||||
|
Lizenz: Apache License 2.0
|
||||||
|
Webseite: https://xmlgraphics.apache.org/fop/
|
||||||
|
Beschreibung: XSL-FO to PDF converter
|
||||||
|
Copyright: Copyright (c) 1999-2025 The Apache Software Foundation
|
||||||
|
Hinweis: Für PDF-Generierung verwendet
|
||||||
|
|
||||||
|
3. diff-pdf
|
||||||
|
Lizenz: GPL-2.0 (vermutlich)
|
||||||
|
GitHub: https://github.com/vslavik/diff-pdf
|
||||||
|
Beschreibung: Tool for visually comparing PDF files
|
||||||
|
Hinweis: Optional für PDF-Vergleich verwendet
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Lizenztexte
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
MIT License
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Apache License 2.0
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
LGPL-3.0 / GPL-2.0 / GPL-3.0 (PySide6)
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PySide6 ist unter LGPL-3.0, GPL-2.0 oder GPL-3.0 lizenziert.
|
||||||
|
Die vollständigen Lizenztexte finden Sie unter:
|
||||||
|
|
||||||
|
LGPL-3.0: https://www.gnu.org/licenses/lgpl-3.0.html
|
||||||
|
GPL-2.0: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
GPL-3.0: https://www.gnu.org/licenses/gpl-3.0.html
|
||||||
|
|
||||||
|
Weitere Informationen: https://doc.qt.io/qtforpython-6/licenses.html
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
Mozilla Public License 2.0 (Saxon-HE)
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Der vollständige Lizenztext der Mozilla Public License 2.0 ist verfügbar unter:
|
||||||
|
https://www.mozilla.org/en-US/MPL/2.0/
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
HINWEISE
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
1. PySide6 (LGPL-3.0):
|
||||||
|
DocuMentor verwendet PySide6 über dynamisches Linking (Python import).
|
||||||
|
Nutzer können die PySide6-Version über pip austauschen.
|
||||||
|
Der Quellcode von DocuMentor muss nicht unter LGPL veröffentlicht werden.
|
||||||
|
|
||||||
|
2. Externe Tools:
|
||||||
|
Saxon-HE, Apache FOP und diff-pdf sind separate Programme, die von
|
||||||
|
DocuMentor aufgerufen werden, aber nicht in die Distribution eingebettet sind.
|
||||||
|
Nutzer müssen diese Tools selbst installieren.
|
||||||
|
|
||||||
|
3. Aktualisierungen:
|
||||||
|
Bitte überprüfen Sie regelmäßig die Lizenzen der verwendeten Bibliotheken,
|
||||||
|
da sich diese ändern können.
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
Stand: Januar 2025
|
||||||
|
Erstellt für: DocuMentor v0.1.0
|
||||||
|
================================================================================
|
||||||
+2
-1
@@ -1,8 +1,9 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "DocuMentor"
|
name = "DocuMentor"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
description = "Add your description here"
|
description = "Professionelle XSL-Transformations-Verwaltung und PDF-Generierung"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
license = {text = "MIT"}
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"pyqtdarktheme>=2.1.0",
|
"pyqtdarktheme>=2.1.0",
|
||||||
|
|||||||
Reference in New Issue
Block a user