Мы рады объявить о выпуске 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.