GroupDocs.Comparison for Python 26.5.0 artık kullanılabilir. Bu, kütüphanenin 25.12 sürümünden bu yana ilk public‑PyPI sürümüdür ve saf‑Python sarmalayıcı, AI‑asistan keşfi için paketlenmiş AGENTS.md, yeni bir konsol komutu ve kapsamlı dokümantasyon yeniden yapılandırması sunar.
Bu sürümdeki yenilikler
| Anahtar | Kategori | Özet |
|---|---|---|
| COMPARISONPYTHON-34 | Özellik | Saf-Python sarmalayıcı yeniden inşa edildi — genel API artık Python’dan tamamen incelenebilir |
| COMPARISONPYTHON-35 | Özellik | AGENTS.md dosyasını tekerleğin içine AI‑ajan keşfi için dahil et |
| COMPARISONPYTHON-36 | Özellik | Yeni dokümantasyon sayfası: Ajanlar ve LLM Entegrasyonu (MCP sunucusu, paketlenmiş AGENTS.md, LLM‑optimize dokümanlar) |
| COMPARISONPYTHON-39 | Özellik | Konsol komutu groupdocs-comparison tekerlek ile kurulur — compare, info, list-formats alt komutları |
| COMPARISONPYTHON-38 | İyileştirme | Dokümantasyon yeniden yapılandırması — developer-guide/comparing-documents/ comparison-basic/ ve advanced-usage/comparison/ klasörlerini birleştirir; yükleme ve kaydetme düzleştirilir |
Genel API değişiklikleri
26.x sarmalayıcı, daha geniş bir genel API ortaya çıkaran ve birkaç üye adını temizleyen yeni bir jeneratörle yeniden inşa edildi. 25.12 sürümüne göre yazılmış mevcut betiklerin çoğu 26.5 üzerinde değişiklik yapmadan çalışır; aşağıdaki değişiklikler uyumluluk etkisine göre gruplanmıştır.
Yeni görünen üst düzey sınıflar
Bu sınıflar 25.12 içlerinde bulunuyordu ancak Nuitka‑derlenmiş sarmalayıcı tarafından Python introspeksiyonundan gizlenmişti. Artık doğrudan içe aktarılabilirler:
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
Yeni Color sınıfı
StyleSettings.font_color, .highlight_color, .shape_color ve .boarder_color artık aşağıdakilerden herhangi birini kabul eder:
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
# Or a Color instance directly
style.font_color = Color(178, 34, 34, 255)
Color, groupdocs.comparison, groupdocs.comparison.options ve groupdocs.pydrawing üzerinden içe aktarılabilir — üç yol da aynı sınıfa işaret eder.
Çağrılabilir tabanlı PreviewOptions
PreviewOptions yapıcı, CreatePageStream temsilcisi için bir Python çağrılabilir nesnesi kabul eder. Geri çağırma imzası (page_number) -> writable_stream şeklindedir:
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) (tek argüman, serbest bırakma geri çağrısı olmadan) da geçerlidir.
Koordinat özelliklerinden tiplenmiş Rectangle
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 — '…'
Düzeltme ürün genelinde uygulanır — her ürün üzerindeki tüm değer‑türlü özelliklere (Point, Size vb., sadece Rectangle değil) uygulanır.
Seçenek yapıcılarında özellik‑adı kwargs
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)
Setter deseni hâlâ çalışır (opts = ApplyChangeOptions(); opts.changes = changes). Bilinmeyen kwargs TypeError hatası verir.
Yeni overload‑suffixed metodlar
Her .NET overload’ının Python’dan açık, belirsiz olmayan bir adla çağrılabilmesi için genel yüzeye overload‑suffixed metodlar eklendi. Örnekler:
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(...)
Açık Comparer.dispose()
with bağlam yöneticisi kullanılmak istenmeyen çağrıcılar için mevcuttur. Önerilen desen hâlâ şöyledir:
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare("result.docx")
Enum büyük‑küçük harf uyumu
Tüm enum’lar UPPERCASE Python konvansiyonunu kullanır. Yaygın enum’lar:
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
25.12 dokümantasyonunda .Accept/.Reject biçimindeki değerleri görüyorsanız, bunları büyük harfli forma güncelleyin.
Kod örneği
Aşağıda, yeni görünen üst‑düzey sınıfların nasıl içe aktarılacağını ve basit bir karşılaştırmanın nasıl yapılacağını gösteren minimal bir örnek yer almaktadır:
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}")
Güncellemeyi nasıl alabilirsiniz
PyPI
pip install groupdocs-comparison-net==26.5.0
Tekerlek public PyPI’da yayınlanmıştır: https://pypi.org/project/groupdocs-comparison-net/
Doğrudan indirme
Doğrudan indirme bağlantısı sağlanmamaktadır; paketi PyPI üzerinden veya GroupDocs web sitesinden edinin.
Kaynaklar
- PyPI proje sayfası: https://pypi.org/project/groupdocs-comparison-net/
- Ajanlar ve LLM Entegrasyonu dokümantasyonu: https://docs.groupdocs.com/comparison/python-net/agents-and-llm-integration/
- Örnekler deposu: https://github.com/groupdocs-comparison/GroupDocs.Comparison-for-Python-via-.NET
- Sorun raporlama forumu: https://forum.groupdocs.com/c/comparison/
- Ücretli Destek Yardım Masası: https://helpdesk.groupdocs.com/