Office
uploadkit-office checks OOXML/ODF structure and security (macros, external links, embeds) for DOCX, XLSX, PPTX, ODT, and ODS. No extra native dependencies (stdlib zipfile + XML). Do not edit or convert documents here — put generic MIME/filename checks in Security.
Install
Shell
pip install uploadkit-office
Shell
uv add uploadkit-office
Shell
poetry add uploadkit-office
Quick start
upload.py
from uploadkit import Uploader
from uploadkit_office import DocxPolicy, OfficePolicy, OfficeKind
uploader = Uploader(DocxPolicy(max_size=10 * 1024 * 1024), storage=my_storage)
# Or allow multiple kinds:
policy = OfficePolicy(kinds=frozenset({OfficeKind.DOCX, OfficeKind.XLSX}))
Async pipelines use default_async_office_validators and the AsyncOffice* validator classes on async_validators.
Shared policy and error conventions: Common patterns. Full reference: uploadkit-office README.