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