python-doxx
Minimal Python bindings for the doxx Rust library. Exposes just the pieces needed for scripted document inspection:
convert(path, export_format="markdown", page=None, images=False)— export.docxfiles as Markdown, plain text, JSON, CSV, or ANSI strings. Optionalpageisolates a single page (1-indexed); setimages=Trueto retain image references when available.search(path, query, page=None)— return match locations for quick content checks, mirroringdoxx --search.extract_images(path, output_dir)— dump embedded images, similar to--extract-imagesin the CLI.
Installation
Once the tagged v0.1.0 release has propagated to PyPI:
pip install python-doxx
# or
uv pip install python-doxx
To build from source locally:
maturin develop
Usage
import doxx
# Export to Markdown
markdown = doxx.convert("report.docx", export_format="markdown", images=True)
# Pull a single page as CSV
csv_page = doxx.convert("data.docx", export_format="csv", page=2)
# Locate text snippets
hits = doxx.search("contract.docx", "payment")
for hit in hits:
print(hit.page, hit.text)
# Extract embedded images
saved = doxx.extract_images("slides.docx", "./images")
Supported export formats: markdown, text, json, csv, and ansi.
Images are optional; enable them when you need real file paths in the exported Markdown or ANSI render. CSV export raises ValueError if the document contains no tables.
Releasing
- Make sure
CHANGELOG.md(if present) andpyproject.tomlshare the new version. - Tag the release (
git tag v0.1.0), thengit push --tags. - The GitHub Actions workflow builds wheels for macOS, Linux, and Windows, uploads them as artifacts, and—when
PYPI_API_TOKENis configured in the repository secrets—publishes to PyPI automatically.
Release files for python-doxx 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| python_doxx-0.1.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| python_doxx-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux musl 1.1+ x86-64 | Details |
| python_doxx-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64 | Details |
| python_doxx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl | CPython 3.12 | CPython 3.12 | macOS 11.0+ ARM64 | Details |
| python_doxx-0.1.0-cp312-cp312-macosx_10_9_x86_64.whl | CPython 3.12 | CPython 3.12 | macOS 10.9+ x86-64 | Details |
Total release size: 16.2 MB
Release files / python_doxx-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | python_doxx-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
4390692effbc0c3a78e6bedbaeac4d09730e712869381e38283609b974f94505
|
|
BLAKE2b-256 checksum How to use checksums |
357aa8fdce0ccd7624e22aa61bfaad1301d55ce3e79c47fed04f049788260378
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / python_doxx-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl
| Download URL | python_doxx-0.1.0-cp312-cp312-musllinux_1_1_x86_64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | CPython 3.12 Linux musl 1.1+ x86-64 |
|
SHA-256 checksum How to use checksums |
bce4977aa4f4d31cc0624e593a0c758ca2a7d2905bdbf37df520baa6a63b07f2
|
|
BLAKE2b-256 checksum How to use checksums |
f57901e1a77b78a4c3f9711aba05910b84bcbbd54a847e0e63fba91e22d6a11b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / python_doxx-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | python_doxx-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
86688818a112c843b15ab7039bc145f29bdaabf3dfbd954802cd042e33a64094
|
|
BLAKE2b-256 checksum How to use checksums |
97b185b941366d0f06023da2146872e2ab0ffbd98a6b11880ab338957cb9c344
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / python_doxx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | python_doxx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
66f5246895b85829dcdf306b1bdae1e2c3ef6b5e8d03855f3d071330121f3b98
|
|
BLAKE2b-256 checksum How to use checksums |
516a46e8f815021e7c6ab57a6d643259b2a45183f08aa008c621add82ca489ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / python_doxx-0.1.0-cp312-cp312-macosx_10_9_x86_64.whl
| Download URL | python_doxx-0.1.0-cp312-cp312-macosx_10_9_x86_64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.12 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
c446d33ed64e251f43aebd5b35c5b2e25e5ee9182b98268f4ef46fc002d1ab36
|
|
BLAKE2b-256 checksum How to use checksums |
619dcab2141b336e738d1a80b43d24a70af2d009bb72bd08cd6e954be3a1c95e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|