Nous sommes heureux d’annoncer la sortie de GroupDocs.Metadata for Python v26.9, disponible depuis septembre 2026. Cette version met à jour le moteur sous‑jacent de la version 26.6 à la version 26.8, introduit une interface en ligne de commande, ajoute la prise en charge de cinq nouveaux formats d’archive (Apple Archive, GZIP, BZ2, XZ et Zstandard), restaure la prise en charge des présentations PowerPoint sur toutes les plateformes et corrige des problèmes de compatibilité critiques affectant Python 3.5–3.7 ainsi que les anciens systèmes Linux/macOS. Notez que cette version comprend une rupture de compatibilité : 105 classes de format ont été déplacées des sous‑espaces de noms vers leurs modules parents.

Nouveautés de cette version

  • [Fonctionnalité] Fournir une interface en ligne de commande dans le package (METADATAPYTHON-39)
  • [Fonctionnalité] Ajouter la prise en charge de la lecture des archives Apple Archive (AAR), GZIP, BZ2, XZ et Zstandard (METADATAPYTHON-62)
  • [Amélioration] Mettre à jour le moteur GroupDocs.Metadata de la version 26.6 à la version 26.8 (METADATAPYTHON-63)
  • [Amélioration] Mettre à jour le runtime .NET intégré de la version 10.0.0 à la version 10.0.12 (METADATAPYTHON-64)
  • [Amélioration] Déplacer les classes de format Ogg, FB2, Mobi, MSG, DNG, SVG, balise raw, CR2 et 3D dans leurs modules parents, comme dans le moteur 26.8 (METADATAPYTHON-65)
  • [Amélioration] Supprimer la dépendance libgdiplus / mono-libgdiplus sous Linux et macOS (METADATAPYTHON-66)
  • [Amélioration] Ajouter FileTypeFeatureSupport ainsi que les énumérations ProductFeature, SupportLevel et FormatFamily à l’API Python (METADATAPYTHON-67)
  • [Amélioration] Ajouter get() aux packages et collections indexés, append() à IptcRecordSet, et un constructeur Rectangle() sans argument (METADATAPYTHON-68)
  • [Amélioration] Publier la référence API pour chaque module, y compris formats.* et standards.* (METADATAPYTHON-69)
  • [Correction] Impossible d’ouvrir les présentations PowerPoint : DllNotFoundException pour aspose.slides.drawing.capi (METADATAPYTHON-50)
  • [Correction] La lecture d’une balise EXIF par TiffTagID échoue sous Python 3.5 – 3.10 (METADATAPYTHON-51)
  • [Correction] Impossible d’utiliser le package sous Python 3.5 – 3.7 (METADATAPYTHON-70)
  • [Correction] pip installe le package sur des versions Linux et macOS qui ne peuvent pas l’exécuter (METADATAPYTHON-71)

Modifications de l’API publique

Nouvelles classes et membres

  • 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, les mêmes cinq membres de FileFormat et MetadataType, ainsi que FileType.AVIF.
  • groupdocs.metadata.common : FileTypeFeatureSupport, FeatureSupport, et les énumérations ProductFeature, SupportLevel et FormatFamily.
  • get() sur les packages et collections indexés — MetadataPackage, ExifDictionaryBasePackage, IptcRecordSet, IptcRecord, XmpLangAlt et autres — comme alternative à package[key]. La propriété item exposée par ces classes ne pouvait pas être appelée et a été supprimée.
  • IptcRecordSet.append(), et un constructeur Rectangle() sans argument.

Déplacés vers le module parent

Ancien module (26.7) Nouveau 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 de ses 58 classes (Cr2MakerNotePackage, Cr2CameraSettingsPackage, les énumérations Cr2…Index, …)
groupdocs.metadata.formats.three_d.dae / .fbx / .gltf / .stl / .three_ds groupdocs.metadata.formats.three_d DaeNode, DaePackage, DaeRootPackage, les classes Fbx…, Gltf…, Stl… et ThreeDS…

Les 13 anciens modules sont supprimés. Les objets renvoyés par l’API ne sont pas affectés : root.ogg_package et similaires renvoient les mêmes classes, désormais importées depuis les nouveaux modules.

Nouvelles fonctionnalités

Ligne de commande : groupdocs-metadata

L’installation du package place une commande groupdocs-metadata sur le PATH (également python -m groupdocs.metadata), utilisable dans les shells, les règles Make et les étapes CI :

groupdocs-metadata info photo.jpg                        # format, type MIME, taille, pages, chiffrement
groupdocs-metadata show report.docx --tag person         # auteur, éditeur, … avec leurs balises
groupdocs-metadata clean report.docx                     # écrit 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 ou xml
groupdocs-metadata list-formats

--tag accepte une catégorie (person, time, content, …) ou une balise de cette catégorie (person.creator), sous la même forme que show l’affiche. Les fichiers sont lus via un flux, de sorte que les entrées en lecture seule fonctionnent, et clean / remove n’écrasent jamais l’entrée sauf si l’option -o la renomme. Chaque commande accepte --password, et --license applique d’abord une licence.

Archives Apple Archive, GZIP, BZ2, XZ et Zstandard

Le moteur 26.8 lit les métadonnées de cinq archives supplémentaires. Chacune possède son propre package racine dans 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 et zstd_package fonctionnent de la même manière (voir Problèmes connus pour les champs qui ne sont pas encore remplis). En 26.7, les fichiers GZIP, BZ2 et AAR déclenchaient NotImplementedError, et les fichiers XZ et Zstandard étaient mal interprétés comme audio MP3.

Les présentations PowerPoint s’ouvrent à nouveau

L’ouverture d’un fichier PowerPoint — .pptx, .ppt, .pot et les autres formats de présentation — échouait en 26.7 sous Windows, Linux et macOS avec DllNotFoundException: Unable to load … aspose.slides.drawing.capi…, car la bibliothèque native requise par le moteur pour les présentations était absente du wheel. Elle est désormais incluse dans chaque wheel 26.9, et sous Windows le package la charge lui‑même, de sorte que les présentations s’ouvrent également avec le Python du Microsoft Store, qui ne recherche pas les bibliothèques natives dans le PATH.

Exemple de code

from groupdocs.metadata import Metadata

# Lire les métadonnées GZIP
with Metadata("archive.gz") as metadata:
    print("Format :", metadata.get_document_info().file_type.file_format.name)
    print("Nombre total d’entrées :", metadata.get_root_package().gzip_package.total_entries)

# Lire les métadonnées Apple Archive
with Metadata("archive.aar") as metadata:
    aar = metadata.get_root_package().aar_package
    print("Nombre total de fichiers :", aar.total_entries)
    for entry in aar.files:
        print(f"- {entry.name} ({entry.length} octets)")

Comment obtenir la mise à jour

PyPI

Installez ou mettez à jour via PyPI :

pip install groupdocs-metadata-net==26.9.0

Page du package : groupdocs-metadata-net 26.9.0 on PyPI

Téléchargement direct

Téléchargez les fichiers wheel pour toutes les plateformes depuis la page de notes de version GroupDocs.Metadata for Python 26.9.

Ressources