GroupDocs.Comparison für Python 26.5.0 ist jetzt verfügbar. Dies ist die erste öffentliche PyPI‑Veröffentlichung der Bibliothek seit 25.12 und führt einen reinen Python‑Wrapper, das mitgelieferte AGENTS.md für die KI‑Assistenten‑Entdeckung, ein neues Konsolenskript und eine umfangreiche Umstrukturierung der Dokumentation ein.
Was ist neu in dieser Version
| Schlüssel | Kategorie | Zusammenfassung |
|---|---|---|
| COMPARISONPYTHON-34 | Funktion | Neuaufbau des reinen Python‑Wrappers — die öffentliche API ist jetzt vollständig introspektierbar aus Python |
| COMPARISONPYTHON-35 | Funktion | AGENTS.md wird im Wheel für die KI‑Agenten‑Entdeckung mitgeliefert |
| COMPARISONPYTHON-36 | Funktion | Neue Dokumentationsseite: Agents and LLM Integration (MCP‑Server, mitgeliefertes AGENTS.md, LLM‑optimierte Docs) |
| COMPARISONPYTHON-39 | Funktion | Konsolenskript groupdocs-comparison wird mit dem Wheel installiert — Unterbefehle compare, info, list-formats |
| COMPARISONPYTHON-38 | Verbesserung | Umstrukturierung der Dokumentation — developer-guide/comparing-documents/ fasst comparison-basic/ und advanced-usage/comparison/ zusammen; Laden und Speichern abgeflacht |
Änderungen der öffentlichen API
Der Wrapper der Version 26.x wurde mit einem neuen Generator neu erstellt, der eine breitere öffentliche API bereitstellt und einige Member‑Namen bereinigt. Die meisten bestehenden Skripte, die gegen 25.12 geschrieben wurden, laufen unverändert auf 26.5; die nachfolgenden Änderungen sind nach Kompatibilitätsauswirkung gruppiert.
Neu sichtbare Top‑Level‑Klassen
Diese Klassen existierten in den Interna von 25.12, waren jedoch durch den Nuitka‑kompilierten Wrapper vor der Python‑Introspektion verborgen. Sie sind jetzt direkt importierbar:
from groupdocs.comparison.license import License, Metered
from groupdocs.comparison.options import (
Color, PdfCompareOptions, WordCompareOptions, CalculateCoordinatesModeEnumeration,
ChangeType, ComparisonDisplayMode, DetalisationLevel, FolderComparisonExtension,
ImagesInheritance, MetadataType, PagesSetup, PaperSize, PasswordSaveOption,
PreviewFormats, PreviewResolution,
)
from groupdocs.comparison.result import ComparisonAction, FileType, Rectangle
Neue Color‑Klasse
StyleSettings.font_color, .highlight_color, .shape_color und .boarder_color akzeptieren nun eines der folgenden Formate:
from groupdocs.comparison.options import Color
# Named‑color factory
style.font_color = Color.from_name("firebrick")
# RGB / RGBA tuple
style.font_color = (255, 0, 0)
style.font_color = (255, 0, 0, 128)
# Hex string
style.font_color = "#FF8800"
style.font_color = "#80FF8800" # AARRGGBB
# Packed ARGB int
style.font_color = 0xFF0000
# Oder direkt eine Color‑Instanz
style.font_color = Color(178, 34, 34, 255)
Color ist importierbar aus groupdocs.comparison, groupdocs.comparison.options und groupdocs.pydrawing — alle drei Pfade verweisen auf dieselbe Klasse.
Aufrufbasierte PreviewOptions
Der Konstruktor von PreviewOptions akzeptiert ein Python‑Callable für das CreatePageStream‑Delegate. Die Signatur des Callbacks lautet (page_number) -> writable_stream:
from groupdocs.comparison.options import PreviewOptions, PreviewFormats
def create_page_stream(page_number):
return open(f"page-{page_number}.png", "wb")
def release_page_stream(page_number):
pass # the bridge has already flushed/closed the stream
with Comparer("source.docx") as comparer:
preview = PreviewOptions(create_page_stream, release_page_stream)
preview.preview_format = PreviewFormats.PNG
preview.page_numbers = [1, 2, 3]
comparer.source.generate_preview(preview)
PreviewOptions(create_page_stream) (ein Argument, kein Release‑Callback) ist ebenfalls gültig.
Typisiertes Rectangle aus Koordinaten‑Properties
options = CompareOptions(calculate_coordinates=True)
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare(options)
for change in comparer.get_changes():
b = change.box
print(f"({b.x:.1f}, {b.y:.1f}) {b.width:.1f}x{b.height:.1f}")
# (488.96, 223.86) 71.09x36.80 — '…'
Die Korrektur gilt produktübergreifend — sie wird auf jede werttypisierte Property in allen Produkten angewendet (Point, Size usw., nicht nur Rectangle).
Property‑Name‑Kwargs bei Options‑Konstruktoren
opts = ApplyChangeOptions(changes=changes, save_original_state=True)
save = SaveOptions(password="secret")
load = LoadOptions(password="open-sesame")
comp = CompareOptions(detect_style_changes=True, sensitivity_of_comparison=85)
Das Setter‑Muster funktioniert weiterhin (opts = ApplyChangeOptions(); opts.changes = changes). Unbekannte Kwargs lösen TypeError aus.
Neue overload‑suffixed Methoden
Ein Satz von overload‑suffixed Methoden wurde zur öffentlichen Oberfläche hinzugefügt, sodass jede .NET‑Überladung aus Python über einen expliziten, eindeutigen Namen aufrufbar ist. Beispiele:
Comparer.add_file(path),add_stream(stream),add_streams(streams),add_string(text)Comparer.apply_changes_file(path, options),apply_changes_stream(stream, options), …Comparer.compare_file(...),compare_stream(...),compare_streams(...),compare_string(...),compare_compare_options(...),compare_save_options(...)Comparer.compare_directory_file(...),compare_directory_string(...)Comparer.get_changes_change_type(...),get_changes_get_change_options(...)License.set_license_file(...),set_license_stream(...),set_license_streams(...),set_license_string(...)Metered.set_metered_key_file(...),set_metered_key_string(...)Document.generate_preview_preview_options(...)localization.SupportedLocales.is_locale_supported_culture_info(...),is_locale_supported_file(...),is_locale_supported_string(...)
Explizites Comparer.dispose()
Verfügbar für Aufrufer, die das with‑Context‑Manager‑Muster nicht verwenden möchten. Das empfohlene Muster bleibt:
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare("result.docx")
Enum‑Schreibweise
Alle Enums verwenden die UPPERCASE‑Konvention von Python. Häufige Enums:
from groupdocs.comparison.result import ComparisonAction, FileType
from groupdocs.comparison.options import (
ChangeType, ComparisonDisplayMode, DetalisationLevel,
FolderComparisonExtension, ImagesInheritance, MetadataType,
PaperSize, PasswordSaveOption, PreviewFormats, PreviewResolution,
)
from groupdocs.comparison.words.revision import RevisionAction
ComparisonAction.ACCEPT, ComparisonAction.REJECT, ComparisonAction.NONE
RevisionAction.ACCEPT, RevisionAction.REJECT, RevisionAction.NONE
PreviewFormats.PNG, PreviewFormats.JPG
MetadataType.SOURCE, MetadataType.TARGET, MetadataType.FILE_AUTHOR
PasswordSaveOption.USER, PasswordSaveOption.SOURCE, PasswordSaveOption.TARGET
Falls Sie in der Dokumentation zu 25.12 die Schreibweise .Accept/.Reject verwendet haben, aktualisieren Sie sie auf die Großschreibung.
Code‑Beispiel
Unten finden Sie ein minimales Beispiel, das das Importieren der neu sichtbaren Top‑Level‑Klassen demonstriert und einen einfachen Vergleich durchführt:
from groupdocs.comparison import Comparer
from groupdocs.comparison.options import CompareOptions
options = CompareOptions(detect_style_changes=True)
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare(options)
for change in comparer.get_changes():
print(f"Change type: {change.change_type}, Box: {change.box}")
Wie Sie das Update erhalten
PyPI
pip install groupdocs-comparison-net==26.5.0
Das Wheel wird im öffentlichen PyPI veröffentlicht: https://pypi.org/project/groupdocs-comparison-net/
Direkter Download
Keine direkten Download‑Links werden bereitgestellt; beziehen Sie das Paket über PyPI oder die GroupDocs‑Webseite.
Ressourcen
- PyPI‑Projektseite: https://pypi.org/project/groupdocs-comparison-net/
- Dokumentation zu Agents and LLM Integration: https://docs.groupdocs.com/comparison/python-net/agents-and-llm-integration/
- Beispiel‑Repository: https://github.com/groupdocs-comparison/GroupDocs.Comparison-for-Python-via-.NET
- Issue‑Reporting‑Forum: https://forum.groupdocs.com/c/comparison/
- Paid Support Helpdesk: https://helpdesk.groupdocs.com/