Z przyjemnością ogłaszamy wydanie GroupDocs.Metadata for Python v26.9, dostępne od września 2026. To wydanie aktualizuje podstawowy silnik z 26.6 do 26.8, wprowadza interfejs wiersza poleceń, dodaje obsługę pięciu nowych formatów archiwów (Apple Archive, GZIP, BZ2, XZ i Zstandard), przywraca obsługę prezentacji PowerPoint na wszystkich platformach oraz naprawia krytyczne problemy kompatybilności wpływające na Pythona 3.5–3.7 i starsze systemy Linux/macOS. Należy zauważyć, że to wydanie zawiera zmianę łamiącą kompatybilność: 105 klas formatów zostało przeniesionych z pod‑przestrzeni nazw do ich modułów nadrzędnych.
What’s new in this release
- [Feature] Udostępnij interfejs wiersza poleceń w pakiecie (METADATAPYTHON-39)
- [Feature] Dodaj obsługę odczytu archiwów Apple Archive (AAR), GZIP, BZ2, XZ i Zstandard (METADATAPYTHON-62)
- [Enhancement] Zaktualizuj silnik GroupDocs.Metadata z 26.6 do 26.8 (METADATAPYTHON-63)
- [Enhancement] Zaktualizuj wbudowane środowisko .NET z 10.0.0 do 10.0.12 (METADATAPYTHON-64)
- [Enhancement] Przenieś klasy formatów Ogg, FB2, Mobi, MSG, DNG, SVG, raw tag, CR2 i 3D do ich modułów nadrzędnych, tak jak w silniku 26.8 (METADATAPYTHON-65)
- [Enhancement] Usuń wymóg
libgdiplus/mono-libgdiplusw systemach Linux i macOS (METADATAPYTHON-66) - [Enhancement] Dodaj
FileTypeFeatureSupportoraz wyliczeniaProductFeature,SupportLeveliFormatFamilydo API Pythona (METADATAPYTHON-67) - [Enhancement] Dodaj metodę
get()do pakietów i kolekcji indeksowanych,append()doIptcRecordSetoraz konstruktorRectangle()bez argumentów (METADATAPYTHON-68) - [Enhancement] Opublikuj referencję API dla każdego modułu, w tym
formats.*istandards.*(METADATAPYTHON-69) - [Fix] Nie można otworzyć prezentacji PowerPoint:
DllNotFoundExceptiondlaaspose.slides.drawing.capi(METADATAPYTHON-50) - [Fix] Odczyt tagu EXIF przez
TiffTagIDnie działa w Pythonie 3.5 – 3.10 (METADATAPYTHON-51) - [Fix] Nie można używać pakietu w Pythonie 3.5 – 3.7 (METADATAPYTHON-70)
- [Fix] pip instaluje pakiet na wersjach Linux i macOS, które nie mogą go uruchomić (METADATAPYTHON-71)
Public API changes
Nowe klasy i członkowie
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, tych samych pięć członkówFileFormatiMetadataType, orazFileType.AVIF.groupdocs.metadata.common:FileTypeFeatureSupport,FeatureSupportoraz wyliczeniaProductFeature,SupportLeveliFormatFamily.get()w pakietach i kolekcjach indeksowanych —MetadataPackage,ExifDictionaryBasePackage,IptcRecordSet,IptcRecord,XmpLangAlti innych — jako alternatywa dlapackage[key]. Właściwośćitem, którą te klasy udostępniały, nie mogła być wywołana i została usunięta.IptcRecordSet.append(), oraz konstruktorRectangle()bez argumentów.
Przeniesiono do modułu nadrzędnego
| Stary moduł (26.7) | Nowy moduł (26.9) | Klasy |
|---|---|---|
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 z 58 klas (Cr2MakerNotePackage, Cr2CameraSettingsPackage, wyliczenia Cr2…Index, …) |
groupdocs.metadata.formats.three_d.dae / .fbx / .gltf / .stl / .three_ds |
groupdocs.metadata.formats.three_d |
DaeNode, DaePackage, DaeRootPackage, klasy Fbx…, Gltf…, Stl… i ThreeDS… |
13 starych modułów zostało usuniętych. Obiekty zwracane przez API nie uległy zmianie: root.ogg_package i podobne zwracają te same klasy, teraz importowane z nowych modułów.
Nowe funkcje
Wiersz poleceń: groupdocs-metadata
Instalacja pakietu umieszcza polecenie groupdocs-metadata w PATH (również python -m groupdocs.metadata), dostępne w powłokach, regułach Make i krokach 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 przyjmuje kategorię (person, time, content, …) lub jeden tag w niej (person.creator), w takiej samej formie, jaką wypisuje show. Pliki są odczytywane przez strumień, więc wejścia tylko do odczytu działają, a clean / remove nigdy nie nadpisują wejścia, chyba że zostanie podane -o. Każde polecenie przyjmuje --password, a --license najpierw stosuje licencję.
Archiwa Apple Archive, GZIP, BZ2, XZ i Zstandard
Silnik 26.8 odczytuje metadane pięciu dodatkowych formatów archiwów. Każdy z nich ma własny pakiet główny w 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 i zstd_package działają w ten sam sposób (zobacz Known Issues dla pól, które jeszcze nie są wypełnione). W 26.7 pliki GZIP, BZ2 i AAR wywoływały NotImplementedError, a pliki XZ i Zstandard były błędnie odczytywane jako audio MP3.
Prezentacje PowerPoint otwierają się ponownie
Otwieranie pliku PowerPoint — .pptx, .ppt, .pot i innych formatów prezentacji — nie powiodło się w 26.7 na Windows, Linux i macOS z DllNotFoundException: Unable to load … aspose.slides.drawing.capi…, ponieważ natywna biblioteka potrzebna silnikowi do prezentacji brakowała w pakiecie wheel. Jest ona zawarta w każdym wheelu 26.9, a w Windows pakiet teraz sam ją ładuje, więc prezentacje otwierają się również w Pythonie z Microsoft Store, który nie przeszukuje PATH w poszukiwaniu natywnych bibliotek.
Przykład kodu
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)")
Jak uzyskać aktualizację
PyPI
Zainstaluj lub zaktualizuj za pomocą PyPI:
pip install groupdocs-metadata-net==26.9.0
Package page: groupdocs-metadata-net 26.9.0 on PyPI
Direct download
Pobierz pliki wheel dla wszystkich platform ze strony wydania GroupDocs.Metadata for Python 26.9.