Vietnamese-first document loader for RAG
Project description
viparse
Vietnamese-first document loader for RAG.
One command turns any Vietnamese document — including legacy TCVN3/VNI/VISCII fonts, scanned
PDFs, and old .doc/.xls files — into clean Unicode NFC Markdown/JSON, ready to push into a
vector DB.
Why
Generic loaders parse the file but often emit garbled diacritics (legacy fonts) or wrong
Unicode normalization. viparse handles exactly that Vietnamese layer: detect & convert legacy
encodings to Unicode, enforce NFC, and offer diacritic-aware OCR.
Backbone principle: never hand-write a parser. Wrap well-maintained engines behind thin
adapters; if an engine gets a CVE or is abandoned, swap the adapter without touching the rest.
Heavy dependencies are lazy-imported via extras (viparse[ocr], viparse[office]).
Status
Released — viparse 0.1.0 on PyPI. See
docs/specs/ for the full spec map (SPEC-0 … SPEC-8) and
CHANGELOG.md for release notes.
Installation
pip install viparse # core — pure stdlib, no parser/OCR binaries
pip install "viparse[office]" # .docx / .xlsx and legacy .doc / .xls
pip install "viparse[pdf]" # digital PDFs
pip install "viparse[ocr]" # scanned PDFs (needs the Tesseract binary)
pip install "viparse[all]" # every engine
Run viparse doctor to see which engines your installed extras enable.
Usage
import viparse
docs = viparse.load("tai_lieu_cu.pdf") # list[Document], already NFC
docs = viparse.load("bang_luong.xlsx", output="markdown", encoding="auto")
viparse ./docs/**/*.pdf -o md
viparse doctor # list available engines per installed extras
License
MIT © 2026 minhtridinh
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file viparse-0.1.2.tar.gz.
File metadata
- Download URL: viparse-0.1.2.tar.gz
- Upload date:
- Size: 107.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ae510f9d62ed74ff493ca4ebffcf0bc25af4813217b8b96922597de0f1a9845
|
|
| MD5 |
0b3ff8c33c9f0fa4960ae69627ddf217
|
|
| BLAKE2b-256 |
f738e8f29e67d3819d509b54a2cb9175a327b506e4380b13fff9f82700fd07f5
|
Provenance
The following attestation bundles were made for viparse-0.1.2.tar.gz:
Publisher:
publish.yml on minhtridinh-kayden/viparse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
viparse-0.1.2.tar.gz -
Subject digest:
6ae510f9d62ed74ff493ca4ebffcf0bc25af4813217b8b96922597de0f1a9845 - Sigstore transparency entry: 2148511998
- Sigstore integration time:
-
Permalink:
minhtridinh-kayden/viparse@d862d477f753ff07c7a09b10ee3e6b1bbb746e75 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/minhtridinh-kayden
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d862d477f753ff07c7a09b10ee3e6b1bbb746e75 -
Trigger Event:
release
-
Statement type:
File details
Details for the file viparse-0.1.2-py3-none-any.whl.
File metadata
- Download URL: viparse-0.1.2-py3-none-any.whl
- Upload date:
- Size: 68.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2a7d12f2dac5a291ce3cbaaff9f0cb4bf73699c0a1ca0cba5c6bde75952dfa1
|
|
| MD5 |
082dc2fd55e60042d5d4a420487422cc
|
|
| BLAKE2b-256 |
c9ed398d6f66b3e9fe3d346a819558c6cfed244b5d5ed9684e5f822f848471d0
|
Provenance
The following attestation bundles were made for viparse-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on minhtridinh-kayden/viparse
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
viparse-0.1.2-py3-none-any.whl -
Subject digest:
c2a7d12f2dac5a291ce3cbaaff9f0cb4bf73699c0a1ca0cba5c6bde75952dfa1 - Sigstore transparency entry: 2148512403
- Sigstore integration time:
-
Permalink:
minhtridinh-kayden/viparse@d862d477f753ff07c7a09b10ee3e6b1bbb746e75 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/minhtridinh-kayden
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d862d477f753ff07c7a09b10ee3e6b1bbb746e75 -
Trigger Event:
release
-
Statement type: