ما خوشحالیم که انتشار GroupDocs.Metadata for Python v26.9 را اعلام می‌کنیم که از سپتامبر 2026 در دسترس است. این نسخه موتور زیرساخت را از 26.6 به 26.8 ارتقا می‌دهد، یک رابط خط فرمان معرفی می‌کند، پشتیبانی از پنج فرمت آرشیو جدید (Apple Archive، GZIP، BZ2، XZ و Zstandard) را اضافه می‌کند، پشتیبانی از ارائه‌های PowerPoint را در تمام پلتفرم‌ها بازگردانده و مشکلات سازگاری بحرانی که بر Python 3.5–3.7 و سیستم‌های قدیمی Linux/macOS تأثیر می‌گذاشتند، رفع می‌کند. توجه داشته باشید که این انتشار شامل یک تغییر شکسته‌کننده است: 105 کلاس فرمت از زیر‌فضاهای نام به ماژول‌های والد خود منتقل شده‌اند.

What’s new in this release

  • [Feature] ارائه رابط خط فرمان درون بسته (METADATAPYTHON-39)
  • [Feature] افزودن پشتیبانی از خواندن آرشیوهای Apple Archive (AAR)، GZIP، BZ2، XZ و Zstandard (METADATAPYTHON-62)
  • [Enhancement] به‌روزرسانی موتور GroupDocs.Metadata از 26.6 به 26.8 (METADATAPYTHON-63)
  • [Enhancement] به‌روزرسانی زمان اجرا .NET جاسازی‌شده از 10.0.0 به 10.0.12 (METADATAPYTHON-64)
  • [Enhancement] انتقال کلاس‌های فرمت Ogg، FB2، Mobi، MSG، DNG، SVG، برچسب raw، CR2 و 3D به ماژول‌های والد، همانند موتور 26.8 (METADATAPYTHON-65)
  • [Enhancement] حذف نیاز به libgdiplus / mono-libgdiplus در Linux و macOS (METADATAPYTHON-66)
  • [Enhancement] افزودن FileTypeFeatureSupport و enumهای ProductFeature، SupportLevel و FormatFamily به API پایتون (METADATAPYTHON-67)
  • [Enhancement] افزودن get() به بسته‌ها و مجموعه‌های ایندکس‌شده، append() به IptcRecordSet و سازنده بدون آرگومان Rectangle() (METADATAPYTHON-68)
  • [Enhancement] انتشار مرجع API برای هر ماژول، شامل formats.* و standards.* (METADATAPYTHON-69)
  • [Fix] عدم توانایی باز کردن ارائه‌های PowerPoint: DllNotFoundException برای aspose.slides.drawing.capi (METADATAPYTHON-50)
  • [Fix] خواندن برچسب EXIF با TiffTagID در Python 3.5 – 3.10 شکست می‌خورد (METADATAPYTHON-51)
  • [Fix] عدم توانایی استفاده از بسته در Python 3.5 – 3.7 (METADATAPYTHON-70)
  • [Fix] pip بسته را بر روی نسخه‌های Linux و macOS نصب می‌کند که قادر به اجرای آن نیستند (METADATAPYTHON-71)

تغییرات API عمومی

کلاس‌ها و اعضای جدید

  • groupdocs.metadata.formats.archive: AarRootPackage, AarPackage, AarFile, GzipRootPackage, GzipPackage, Bz2RootPackage, Bz2Package, XzRootPackage, XzPackage, ZstdRootPackage, ZstdPackage.
  • FileType.AAR, FileType.GZIP, FileType.BZ2, FileType.XZ, FileType.ZSTD, همان پنج عضو FileFormat و MetadataType، و FileType.AVIF.
  • groupdocs.metadata.common: FileTypeFeatureSupport, FeatureSupport, و enumهای ProductFeature, SupportLevel و FormatFamily.
  • get() روی بسته‌ها و مجموعه‌های ایندکس‌شده — MetadataPackage, ExifDictionaryBasePackage, IptcRecordSet, IptcRecord, XmpLangAlt و سایرین — به‌عنوان جایگزینی برای package[key]. ویژگی item که این کلاس‌ها ارائه می‌دادند قابل فراخوانی نبود و حذف شد.
  • IptcRecordSet.append() و سازنده بدون آرگومان Rectangle().

جابجا شده به ماژول والد

ماژول قدیمی (26.7) ماژول جدید (26.9) کلاس‌ها
groupdocs.metadata.formats.audio.ogg groupdocs.metadata.formats.audio OggPackage, OggRootPackage, OggUserComment
groupdocs.metadata.formats.ebook.fb2 groupdocs.metadata.formats.ebook Fb2Author, Fb2DocumentInfo, Fb2Genre, Fb2PublishInfo, Fb2Sequence, Fb2TitleInfo
groupdocs.metadata.formats.ebook.mobi groupdocs.metadata.formats.ebook MobiHeader, MobiPackage, MobiRootPackage, PDBHeader
groupdocs.metadata.formats.fb2 groupdocs.metadata.formats.ebook Fb2Package
groupdocs.metadata.formats.email.msg groupdocs.metadata.formats.email MsgKnownProperties
groupdocs.metadata.formats.image.dng groupdocs.metadata.formats.image DngPackage, DngRootPackage
groupdocs.metadata.formats.image.svg groupdocs.metadata.formats.image SvgPackage, SvgRootPackage
groupdocs.metadata.formats.image groupdocs.metadata.formats.raw RawDoubleTag, RawFloatTag, RawRationalTag, RawSByteTag, RawSLongTag, RawSRationalTag, RawSShortTag, RawUndefinedTag
groupdocs.metadata.formats.raw.tag groupdocs.metadata.formats.raw RawTag, RawArrayTag, RawAsciiTag, RawByteTag, RawLongTag, RawShortTag
groupdocs.metadata.formats.raw.cr2 groupdocs.metadata.formats.raw 56 از 58 کلاس آن (Cr2MakerNotePackage, Cr2CameraSettingsPackage, enumهای Cr2…Index, …)
groupdocs.metadata.formats.three_d.dae / .fbx / .gltf / .stl / .three_ds groupdocs.metadata.formats.three_d DaeNode, DaePackage, DaeRootPackage, کلاس‌های Fbx…, Gltf…, Stl… و ThreeDS…

۱۳ ماژول قدیمی حذف شده‌اند. اشیائی که توسط API بازگردانده می‌شوند تحت تأثیر نیستند: root.ogg_package و مشابه آن همان کلاس‌ها را برمی‌گردانند، که اکنون از ماژول‌های جدید وارد می‌شوند.

ویژگی‌های جدید

خط فرمان: groupdocs-metadata

نصب بسته یک فرمان groupdocs-metadata را در PATH قرار می‌دهد (همچنین python -m groupdocs.metadata)، برای شل‌ها، قوانین Make و مراحل CI:

groupdocs-metadata info photo.jpg                        # format, MIME type, size, pages, encryption
groupdocs-metadata show report.docx --tag person         # author, editor, ... with their tags
groupdocs-metadata clean report.docx                     # writes report.clean.docx
groupdocs-metadata remove photo.jpg --tag person.creator -o photo-anon.jpg
groupdocs-metadata export report.pdf -o metadata.json    # json, csv, xlsx, xls or xml
groupdocs-metadata list-formats

--tag یک دسته‌بندی (person, time, content, …) یا یک برچسب داخل آن (person.creator) را می‌گیرد، به همان شکلی که show چاپ می‌کند. فایل‌ها از طریق یک جریان خوانده می‌شوند، بنابراین ورودی‌های فقط‑خواندنی کار می‌کنند، و clean / remove هرگز ورودی را بازنویسی نمی‌کنند مگر اینکه -o نام آن را بدهد. هر فرمان --password می‌گیرد و --license ابتدا یک لایسنس اعمال می‌کند.

آرشیوهای Apple Archive، GZIP، BZ2، XZ و Zstandard

موتور 26.8 متادیتای پنج فرمت آرشیو دیگر را می‌خواند. هر کدام بسته ریشه خود را در groupdocs.metadata.formats.archive دارند:

from groupdocs.metadata import Metadata

with Metadata("archive.gz") as metadata:
    print(metadata.get_document_info().file_type.file_format.name)  # GZIP
    print(metadata.get_root_package().gzip_package.total_entries)

with Metadata("archive.aar") as metadata:
    aar = metadata.get_root_package().aar_package
    print(aar.total_entries)
    for entry in aar.files:
        print(entry.name, entry.length, entry.is_directory)

bz2_package، xz_package و zstd_package به همان شکل کار می‌کنند (برای فیلدهایی که هنوز پر نشده‌اند به Known Issues مراجعه کنید). در 26.7، فایل‌های GZIP، BZ2 و AAR NotImplementedError ایجاد می‌کردند و فایل‌های XZ و Zstandard به‌عنوان صوت MP3 خوانده می‌شدند.

بازگشت قابلیت باز کردن ارائه‌های PowerPoint

باز کردن یک فایل PowerPoint — .pptx، .ppt، .pot و سایر فرمت‌های ارائه — در 26.7 در ویندوز، لینوکس و macOS با خطای DllNotFoundException: Unable to load … aspose.slides.drawing.capi… شکست می‌خورد، زیرا کتابخانه بومی که موتور برای ارائه‌ها نیاز دارد در wheel موجود نبود. این کتابخانه در هر wheel نسخه 26.9 گنجانده شده است و در ویندوز بسته اکنون خود آن را بارگذاری می‌کند، بنابراین ارائه‌ها تحت Python فروشگاه مایکروسافت که مسیر PATH را برای کتابخانه‌های بومی جستجو نمی‌کند نیز باز می‌شوند.

مثال کد

from groupdocs.metadata import Metadata

# Read GZIP metadata
with Metadata("archive.gz") as metadata:
    print("Format:", metadata.get_document_info().file_type.file_format.name)
    print("Total entries:", metadata.get_root_package().gzip_package.total_entries)

# Read Apple Archive metadata
with Metadata("archive.aar") as metadata:
    aar = metadata.get_root_package().aar_package
    print("Total files:", aar.total_entries)
    for entry in aar.files:
        print(f"- {entry.name} ({entry.length} bytes)")

نحوه دریافت به‌روزرسانی

PyPI

نصب یا ارتقاء از طریق PyPI:

pip install groupdocs-metadata-net==26.9.0

Package page: groupdocs-metadata-net 26.9.0 on PyPI

دانلود مستقیم

فایل‌های wheel برای تمام پلتفرم‌ها را از صفحه انتشار GroupDocs.Metadata for Python 26.9 release page دانلود کنید.

منابع