We’re happy to announce the release of GroupDocs.Metadata for Python v26.9, available as of September 2026. This release upgrades the underlying engine from 26.6 to 26.8, introduces a command-line interface, adds support for five new archive formats (Apple Archive, GZIP, BZ2, XZ, and Zstandard), restores PowerPoint presentation support on all platforms, and fixes critical compatibility issues affecting Python 3.5–3.7 and older Linux/macOS systems. Note that this release includes a breaking change: 105 format classes have been moved from sub-namespaces into their parent modules.

What’s new in this release

  • [Feature] Ship command line interface within package (METADATAPYTHON-39)
  • [Feature] Add support for reading Apple Archive (AAR), GZIP, BZ2, XZ and Zstandard archives (METADATAPYTHON-62)
  • [Enhancement] Update GroupDocs.Metadata engine from 26.6 to 26.8 (METADATAPYTHON-63)
  • [Enhancement] Update the embedded .NET runtime from 10.0.0 to 10.0.12 (METADATAPYTHON-64)
  • [Enhancement] Move the Ogg, FB2, Mobi, MSG, DNG, SVG, raw tag, CR2 and 3D format classes into their parent modules, as in the 26.8 engine (METADATAPYTHON-65)
  • [Enhancement] Remove the libgdiplus / mono-libgdiplus requirement on Linux and macOS (METADATAPYTHON-66)
  • [Enhancement] Add FileTypeFeatureSupport and the ProductFeature, SupportLevel and FormatFamily enums to the Python API (METADATAPYTHON-67)
  • [Enhancement] Add get() to indexed packages and collections, append() to IptcRecordSet, and a no-argument Rectangle() constructor (METADATAPYTHON-68)
  • [Enhancement] Publish the API reference for every module, including formats.* and standards.* (METADATAPYTHON-69)
  • [Fix] Cannot open PowerPoint presentations: DllNotFoundException for aspose.slides.drawing.capi (METADATAPYTHON-50)
  • [Fix] Reading an EXIF tag by TiffTagID fails on Python 3.5 – 3.10 (METADATAPYTHON-51)
  • [Fix] Cannot use the package on Python 3.5 – 3.7 (METADATAPYTHON-70)
  • [Fix] pip installs the package on Linux and macOS versions that cannot run it (METADATAPYTHON-71)

Public API changes

New classes and members

  • 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, the same five members of FileFormat and MetadataType, and FileType.AVIF.
  • groupdocs.metadata.common: FileTypeFeatureSupport, FeatureSupport, and the ProductFeature, SupportLevel and FormatFamily enums.
  • get() on indexed packages and collections — MetadataPackage, ExifDictionaryBasePackage, IptcRecordSet, IptcRecord, XmpLangAlt and others — as an alternative to package[key]. The item property these classes exposed could not be called and is gone.
  • IptcRecordSet.append(), and a no-argument Rectangle() constructor.

Moved to the parent module

Old module (26.7) New module (26.9) Classes
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 of its 58 classes (Cr2MakerNotePackage, Cr2CameraSettingsPackage, the Cr2…Index enums, …)
groupdocs.metadata.formats.three_d.dae / .fbx / .gltf / .stl / .three_ds groupdocs.metadata.formats.three_d DaeNode, DaePackage, DaeRootPackage, the Fbx…, Gltf…, Stl… and ThreeDS… classes

The 13 old modules are removed. Objects returned by the API are unaffected: root.ogg_package and the like return the same classes, now imported from the new modules.

New features

Command line: groupdocs-metadata

Installing the package puts a groupdocs-metadata command on PATH (also python -m groupdocs.metadata), for shells, Make rules and CI steps:

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 takes a category (person, time, content, …) or one tag in it (person.creator), in the same form show prints. Files are read through a stream, so read-only inputs work, and clean / remove never overwrite the input unless -o names it. Every command takes --password, and --license applies a license first.

Apple Archive, GZIP, BZ2, XZ and Zstandard archives

The 26.8 engine reads the metadata of five more archive formats. Each has its own root package in 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 and zstd_package work the same way (see Known Issues for the fields that are not filled in yet). In 26.7, GZIP, BZ2 and AAR files raised NotImplementedError, and XZ and Zstandard files were misread as MP3 audio.

PowerPoint presentations open again

Opening a PowerPoint file — .pptx, .ppt, .pot and the other presentation formats — failed in 26.7 on Windows, Linux and macOS with DllNotFoundException: Unable to load … aspose.slides.drawing.capi…, because the native library the engine needs for presentations was missing from the wheel. It ships in every 26.9 wheel, and on Windows the package now loads it itself, so presentations also open under the Microsoft Store Python, which does not search PATH for native libraries.

Code example

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)")

How to get the update

PyPI

Install or upgrade via PyPI:

pip install groupdocs-metadata-net==26.9.0

Package page: groupdocs-metadata-net 26.9.0 on PyPI

Direct download

Download wheel files for all platforms from the GroupDocs.Metadata for Python 26.9 release page.

Resources