GroupDocs.Comparison for Python 26.5.0 已发布。 这是自 25.12 以来首次在 PyPI 上公开发布的版本,新增了纯 Python 包装器、随轮子一起提供的 AGENTS.md(用于 AI 助手发现)、全新的控制台脚本以及大幅度的文档结构重构。
What’s new in this release
| Key | Category | Summary |
|---|---|---|
| COMPARISONPYTHON-34 | Feature | Pure-Python wrapper rebuild — public API is now fully introspectable from Python |
| COMPARISONPYTHON-35 | Feature | Ship AGENTS.md inside the wheel for AI-agent discovery |
| COMPARISONPYTHON-36 | Feature | New documentation page: Agents and LLM Integration (MCP server, bundled AGENTS.md, LLM‑optimized docs) |
| COMPARISONPYTHON-39 | Feature | Console script groupdocs-comparison installed with the wheel — compare, info, list-formats subcommands |
| COMPARISONPYTHON-38 | Enhancement | Documentation restructure — developer-guide/comparing-documents/ consolidates comparison-basic/ and advanced-usage/comparison/; loading and saving flattened |
Public API changes
26.x 包装器使用全新生成器重建,提供了更广泛的公共 API 并清理了一些成员名称。大多数基于 25.12 编写的现有脚本在 26.5 上可以直接运行;以下更改按兼容性影响分组。
Newly-visible top-level classes
这些类在 25.12 的内部实现中存在,但由于 Nuitka 编译的包装器而对 Python 反射隐藏。现在可以直接导入:
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
New Color class
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 导入——这三条路径指向同一个类。
Callable‑based PreviewOptions
PreviewOptions 构造函数接受一个 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)(单参数、无释放回调)同样有效。
Typed Rectangle from coordinate 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 — '…'
此修复面向所有产品——适用于每个值类型属性(Point、Size 等),不仅限于 Rectangle。
Property‑name kwargs on options constructors
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)。若传入未知关键字参数,将抛出 TypeError。
New overload‑suffixed methods
为公共接口添加了一组带后缀的重载方法,使每个 .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(...)
Explicit Comparer.dispose()
提供给不想使用 with 上下文管理器的调用者。推荐的使用模式仍然是:
with Comparer("source.docx") as comparer:
comparer.add("target.docx")
comparer.compare("result.docx")
Enum casing
所有枚举均采用大写的 Python 约定。常用枚举示例:
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 形式的枚举值,请改为使用大写形式。
Code example
下面是一个最小示例,演示如何导入新暴露的顶层类并执行简单的文档比较:
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}")
How to get the update
PyPI
pip install groupdocs-comparison-net==26.5.0
该轮子已在公共 PyPI 上发布:https://pypi.org/project/groupdocs-comparison-net/
Direct download
未提供直接下载链接;请通过 PyPI 或 GroupDocs 官网获取软件包。
Resources
- PyPI 项目页面:https://pypi.org/project/groupdocs-comparison-net/
- Agents and LLM Integration 文档: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/