Metadata-Version: 2.4
Name: anytomd
Version: 1.4.1
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Text Processing :: Markup :: Markdown
Classifier: Typing :: Typed
Requires-Dist: anytomd[ocr,pdf,vlm] ; extra == 'full'
Requires-Dist: liteparse>=2.16 ; extra == 'ocr'
Requires-Dist: liteparse>=2.16 ; extra == 'pdf'
Requires-Dist: openai>=3.31 ; extra == 'vlm'
Requires-Dist: pydantic-settings>=2.11 ; extra == 'vlm'
Provides-Extra: full
Provides-Extra: ocr
Provides-Extra: pdf
Provides-Extra: vlm
License-File: LICENSE
License-File: THIRD_PARTY_LICENSES.md
Summary: Python binding of anytomd-rs: DOCX, PPTX, XLSX, HTML, CSV, images and more to clean Markdown for LLMs.
Keywords: markdown,document,conversion,docx,pptx,xlsx,html,llm,rag,rust,anytomd-rs
Author-email: damvolkov <damvolkovv@gmail.com>
License-Expression: Apache-2.0
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://damvolkov.github.io/anytomd/
Project-URL: Homepage, https://github.com/damvolkov/anytomd
Project-URL: Issues, https://github.com/damvolkov/anytomd/issues
Project-URL: Source, https://github.com/damvolkov/anytomd
Project-URL: Upstream, https://github.com/developer0hye/anytomd-rs

# anytomd

[![PyPI](https://img.shields.io/pypi/v/anytomd.svg)](https://pypi.org/project/anytomd/)
[![Python](https://img.shields.io/pypi/pyversions/anytomd.svg)](https://pypi.org/project/anytomd/)
[![Docs](https://img.shields.io/badge/docs-damvolkov.github.io%2Fanytomd-8f3b1b)](https://damvolkov.github.io/anytomd/)
[![CI](https://github.com/damvolkov/anytomd/actions/workflows/ci.yml/badge.svg)](https://github.com/damvolkov/anytomd/actions/workflows/ci.yml)
[![Upstream](https://img.shields.io/crates/v/anytomd.svg?label=anytomd-rs)](https://crates.io/crates/anytomd)

**Python binding of [anytomd-rs](https://github.com/developer0hye/anytomd-rs)** — the pure-Rust engine by
[developer0hye](https://github.com/developer0hye) that turns DOCX, PPTX, XLSX, HTML, CSV, notebooks, images and code
into clean Markdown for LLMs. No Python dependencies, GIL released, native asyncio, fully typed.

📖 **Documentation: <https://damvolkov.github.io/anytomd/>**

```bash
pip install anytomd            # or: uv add anytomd
pip install "anytomd[full]"    # + PDF, text in images (OCR), image descriptions (vision LLM)
```

```python
import anytomd as ad

document = ad.convert("report.docx")
document.markdown              # headings, tables, lists, links, images

await ad.aconvert("scan.pdf")  # every call has its async twin
ad.detect("export.dat")        # 'xlsx'
ad.describe("cat.png")         # 'Image description: A tabby cat asleep on a chair.'
```

| | |
|---|---|
| [Formats](https://damvolkov.github.io/anytomd/formats/) | What converts, with and without each extra |
| [API](https://damvolkov.github.io/anytomd/api/) | `convert`, `detect`, `describe`, their async twins, `Document`, `VisionSpec` |
| [Errors](https://damvolkov.github.io/anytomd/errors/) | What can fail, and how to catch it |
| [Self-maintenance](https://damvolkov.github.io/anytomd/maintenance/) | How the binding follows anytomd-rs on its own |

Conversion quality, format coverage and performance belong to
[anytomd-rs](https://github.com/developer0hye/anytomd-rs): Markdown output issues go
[upstream](https://github.com/developer0hye/anytomd-rs/issues), Python API issues [here](https://github.com/damvolkov/anytomd/issues).

Apache-2.0, like anytomd-rs. Wheels statically link the engine and its dependencies; their licenses ship in
[`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).

