Skip to main content

pyodr — Python bindings for OpenDocument.core

Decode office documents (ODF, OOXML, legacy MS binary, PDF, CSV, ...) and render them to HTML from Python.

import pyodr

file = pyodr.open("document.odt")
print(pyodr.file_type_to_string(file.file_type()))

service = pyodr.html.translate(file, "cache-dir", pyodr.HtmlConfig())
html = service.bring_offline("output-dir")
for page in html.pages():
    print(page.name, page.path)

A small CLI is included: pyodr <file> renders a document and opens it in the browser; pyodr <file> --serve hosts it over HTTP (via the core HTTP server, available when built with ODR_WITH_HTTP_SERVER).

Building

The bindings are part of the main CMake build, toggled by ODR_PYTHON:

conan install . -o '&:with_python=True' --build missing
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DODR_PYTHON=ON
cmake --build build --target pyodr_core
PYTHONPATH=build/python ODR_CORE_DATA_PATH=build/data python -m pytest python/tests

pip install . from the repository root builds a wheel via scikit-build-core (see the root pyproject.toml); run conan install first and point CMAKE_ARGS at the generated conan_toolchain.cmake so the C++ dependencies resolve. Wheels bundle libmagic's database, so match that option:

conan install . -o '&:with_python=True' -o '&:bundle_assets=True' --build missing
CMAKE_ARGS="-DCMAKE_TOOLCHAIN_FILE=$PWD/conan_toolchain.cmake" pip install .

Runtime data

Rendering uses shipped assets (CSS/JS), and MIME detection uses libmagic's compiled database (magic.mgc). Wheels bundle both under pyodr/data and pick them up automatically. For in-tree builds set ODR_CORE_DATA_PATH (the tests read it) and, if needed, ODR_LIBMAGIC_DATABASE_PATH, or call pyodr.GlobalParams.set_odr_core_data_path(...) / set_libmagic_database_path(...).

Neither is fatal when missing: without the assets, rendering fails on the individual resource; without the database, odrcore tries the system database and then falls back to its own magic sniffing (which sees an .odt as application/zip rather than the ODF type).

Metadata

Release files for pyodr 6.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyodr 6.0.0
File Size Uploaded
pyodr-6.0.0.tar.gz 1.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyodr 6.0.0
File Interpreter ABI Platform
pyodr-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.39+ x86-64 Details
pyodr-6.0.0-cp314-cp314-macosx_26_0_arm64.whl CPython 3.14 CPython 3.14 macOS 26.0+ ARM64 Details

Total release size: 7.2 MB

Release files / pyodr-6.0.0.tar.gz

Download URL pyodr-6.0.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
26ebd6687ffaba5e5580998381fa0946e170d284e4fc7aac75dfc885adca6877
BLAKE2b-256 checksum
How to use checksums
9135c4e78057ec432ee994d7f4ac209ea7814839cefe457cce4d23c99012b0d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release files / pyodr-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl

Download URL pyodr-6.0.0-cp314-cp314-manylinux_2_39_x86_64.whl
Size 3.5 MB
Tags CPython 3.14 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
0f12d315e55ed7f31df7821eec1460f0d6e52a5a2ee56368a466089b13c4cc1c
BLAKE2b-256 checksum
How to use checksums
63f0f4d48f1a8114cb24ff023b3d59f9d0dc6096bcf844c24c16632a0858d00e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release files / pyodr-6.0.0-cp314-cp314-macosx_26_0_arm64.whl

Download URL pyodr-6.0.0-cp314-cp314-macosx_26_0_arm64.whl
Size 2.5 MB
Tags CPython 3.14 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
8653d5b003fd1650411bb3ce2a85c4013858886140bce133039e9e65944367d9
BLAKE2b-256 checksum
How to use checksums
71cf1c2eef153c5560e4a2f43857d3fffbd331d6549cb9c9e99d68941011a823
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 27, 2026.

Transparency log

Release history Release notifications | RSS feed

7.5.2

3 release files

7.5.1

3 release files

7.5.0

3 release files

7.4.0

3 release files

7.3.2

3 release files

7.3.1

3 release files

7.3.0

3 release files

7.2.2

3 release files

7.2.1

3 release files

7.2.0

3 release files

7.1.0

3 release files

7.0.0

3 release files

6.12.0

3 release files

6.11.0

3 release files

6.10.1

3 release files

6.10.0

3 release files

6.9.0

3 release files

6.8.0

3 release files

6.7.1

3 release files

6.7.0

3 release files

6.6.0

3 release files

6.5.0

3 release files

6.4.0

3 release files

6.3.0

3 release files

6.2.0

3 release files

6.1.0

3 release files

6.0.1

3 release files

This release

6.0.0 This release

3 release files

5.7.1

3 release files

5.7.0

3 release files

0.0.2

26 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page