Мы рады объявить о выпуске 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 классов форматов перенесены из подпространств имён в их родительские модули.

Что нового в этом выпуске

  • [Функция] Поставляется интерфейс командной строки в составе пакета (METADATAPYTHON-39)
  • [Функция] Добавлена поддержка чтения архивов Apple Archive (AAR), GZIP, BZ2, XZ и Zstandard (METADATAPYTHON-62)
  • [Улучшение] Обновление движка GroupDocs.Metadata с 26.6 до 26.8 (METADATAPYTHON-63)
  • [Улучшение] Обновление встроенного .NET‑runtime с 10.0.0 до 10.0.12 (METADATAPYTHON-64)
  • [Улучшение] Перемещение классов форматов Ogg, FB2, Mobi, MSG, DNG, SVG, raw‑tag, CR2 и 3D в их родительские модули, как в движке 26.8 (METADATAPYTHON-65)
  • [Улучшение] Удаление требования libgdiplus / mono-libgdiplus в Linux и macOS (METADATAPYTHON-66)
  • [Улучшение] Добавление FileTypeFeatureSupport и перечислений ProductFeature, SupportLevel и FormatFamily в Python‑API (METADATAPYTHON-67)
  • [Улучшение] Добавление метода get() к индексированным пакетам и коллекциям, append() к IptcRecordSet и конструктора Rectangle() без аргументов (METADATAPYTHON-68)
  • [Улучшение] Публикация справки API для каждого модуля, включая formats.* и standards.* (METADATAPYTHON-69)
  • [Исправление] Невозможно открыть презентации PowerPoint: DllNotFoundException для aspose.slides.drawing.capi (METADATAPYTHON-50)
  • [Исправление] Чтение EXIF‑тега по TiffTagID не работает в Python 3.5 – 3.10 (METADATAPYTHON-51)
  • [Исправление] Невозможно использовать пакет в Python 3.5 – 3.7 (METADATAPYTHON-70)
  • [Исправление] 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 и перечисления 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, перечисления 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…

13 старых модулей удалены. Объекты, возвращаемые API, остаются без изменений: root.ogg_package и аналогичные теперь импортируются из новых модулей.

Новые возможности

Командная строка: groupdocs-metadata

Установка пакета размещает команду groupdocs-metadata в PATH (а также python -m groupdocs.metadata) для оболочек, правил Make и шагов CI:

groupdocs-metadata info photo.jpg                        # формат, MIME‑тип, размер, страницы, шифрование
groupdocs-metadata show report.docx --tag person         # автор, редактор … с их тегами
groupdocs-metadata clean report.docx                     # записывает 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 или 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 работают аналогично (см. Известные проблемы для полей, которые пока не заполняются). В версии 26.7 файлы GZIP, BZ2 и AAR вызывали NotImplementedError, а файлы XZ и Zstandard ошибочно распознавались как MP3‑аудио.

Презентации PowerPoint снова открываются

Открытие файлов PowerPoint — .pptx, .ppt, .pot и других форматов презентаций — в версии 26.7 на Windows, Linux и macOS завершалось ошибкой DllNotFoundException: Unable to load … aspose.slides.drawing.capi…, потому что нативная библиотека, необходимая движку для работы с презентациями, отсутствовала в wheel‑файле. В каждом wheel‑файле версии 26.9 библиотека включена, и в Windows пакет теперь загружает её самостоятельно, поэтому презентации открываются и в Python из Microsoft Store, который не ищет PATH для нативных библиотек.

Пример кода

from groupdocs.metadata import Metadata

# Чтение метаданных GZIP
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)

# Чтение метаданных Apple Archive
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

Страница пакета: groupdocs-metadata-net 26.9.0 on PyPI

Прямая загрузка

Скачайте wheel‑файлы для всех платформ со страницы выпуска GroupDocs.Metadata for Python 26.9.

Ресурсы