GroupDocs.Comparison עבור Python 26.5.0 זמין כעת.
זוהי ההפצה הראשונה של הספרייה ב‑PyPI מאז 25.12 ומציגה עטיפה pure‑Python, קובץ AGENTS.md משולב לגילוי סוכן AI, סקריפט קונסול חדש, וארגון מחדש נרחב של התיעוד.
מה חדש בגרסה זו
| מזהה | קטגוריה | סיכום |
|---|---|---|
| COMPARISONPYTHON-34 | תכונה | בנייה מחדש של עטיפה Pure-Python — ה‑API הציבורי ניתן כעת לחקירה מלאה מ‑Python |
| COMPARISONPYTHON-35 | תכונה | הוספת AGENTS.md לתוך ה‑wheel לגילוי סוכן AI |
| COMPARISONPYTHON-36 | תכונה | דף תיעוד חדש: אינטגרציה של סוכנים ו‑LLM (שרת MCP, קובץ AGENTS.md משולב, תיעוד מותאם ל‑LLM) |
| COMPARISONPYTHON-39 | תכונה | סקריפט קונסול groupdocs-comparison מותקן עם ה‑wheel — פקודות משנה compare, info, list-formats |
| COMPARISONPYTHON-38 | שיפור | ארגון מחדש של התיעוד — developer-guide/comparing-documents/ מאחד את comparison-basic/ ו‑advanced-usage/comparison/; טעינה ושמירה שטוחות |
שינויים בממשק API ציבורי
העטיפה של גרסת 26.x נבנתה מחדש עם מחולל חדש שמחשף API ציבורי רחב יותר ומסדר כמה שמות של חברים. רוב הסקריפטים הקיימים שנכתבו עבור 25.12 פועלים ללא שינוי ב‑26.5; השינויים שלהלן מקובצים לפי השפעת התאימות.
מחלקות רמת‑על חדשות שנחשפות
מחלקות אלו קיימות במערכת הפנימית של 25.12 אך היו מוסתרות מחקירת Python על‑ידי העטיפה המהודרת ב‑Nuitka. כעת ניתן לייבא אותן ישירות:
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
מחלקת Color חדשה
StyleSettings.font_color, .highlight_color, .shape_color, ו‑.boarder_color מקבלים כעת כל אחד מהבאים:
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, ו‑groupdocs.pydrawing — שלושת הנתיבים מובילים לאותה מחלקה.
PreviewOptions מבוסס קריאה (Callable)
הקונסטרקטור של PreviewOptions מקבל קריאה (callable) של Python עבור המתווך CreatePageStream. חתימת הפונקציה היא (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) (ארגומנט יחיד, ללא קריאת שחרור) גם הוא תקף.
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 — '…'
התיקון הוא ברמת המוצר כולו — חל על כל תכונה בעלת ערך טיפוסי בכל מוצר (Point, Size, וכו’, לא רק Rectangle).
פרמטרים בשם‑מאפיין (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 עדיין פועל (opts = ApplyChangeOptions(); opts.changes = changes). kwargs לא מוכרים גורמים ל‑TypeError.
שיטות חדשות עם סיומת overload
הוסף סט של שיטות עם סיומת overload לממשק הציבורי כך שכל overload של .NET ניתן לקריאה מ‑Python בשם מפורש ולא דו‑משמעי. דוגמאות:
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(...)
קריאה מפורשת ל‑Comparer.dispose()
זמין למתקשרים שמעדיפים לא להשתמש באידיאום של מנהל ההקשר with. תבנית ההמלצה נשארת:
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare("result.docx")
כתיב של Enum
כל ה‑enum משתמשים בקונבנציית Python של UPPERCASE. enum נפוצים:
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 שהציג ערכי סגנון .Accept/.Reject, עדכנו אותם לצורת האותיות הגדולות.
דוגמת קוד
להלן דוגמה מינימלית שמדגימה ייבוא של המחלקות ברמת‑על החדשות וביצוע השוואה פשוטה:
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}")
כיצד לקבל את העדכון
PyPI
pip install groupdocs-comparison-net==26.5.0
ה‑wheel מתפרסם ב‑PyPI הציבורי: https://pypi.org/project/groupdocs-comparison-net/
הורדה ישירה
לא מסופקים קישורי הורדה ישירה; יש לקבל את החבילה דרך PyPI או אתר GroupDocs.
משאבים
- דף הפרויקט ב‑PyPI: https://pypi.org/project/groupdocs-comparison-net/
- תיעוד אינטגרציה של סוכנים ו‑LLM: https://docs.groupdocs.com/comparison/python-net/agents-and-llm-integration/
- מאגר דוגמאות: https://github.com/groupdocs-comparison/GroupDocs.Comparison-for-Python-via-.NET
- פורום דיווח על בעיות: https://forum.groupdocs.com/c/comparison/
- שירות תמיכה בתשלום: https://helpdesk.groupdocs.com/