Skip to main content
complydoc

Document analysis for LLM pipelines, fully offline.

PyPI version PyPI downloads Tests Documentation License


complydoc inspects documents, and the output of document loaders, before they are sent to an LLM. It measures what processing them will cost, how reliably text can be read off each page, which personal and financial identifiers they contain, and whether anything hidden in a file is addressed to a model.

Quickstart

uv tool install complydoc
complydoc audit ./documents
import complydoc as cd

report = cd.full_audit("./documents")
print(report.overall.score)
cd.write_html(report, "report.html")

Output from a LangChain or LlamaIndex loader, or several loaders over a folder:

from langchain_community.document_loaders import PDFPlumberLoader, PyPDFLoader

report = cd.inspect_documents(PyPDFLoader("contract.pdf"))

report = cd.compare_loaders(
    {"pypdf": PyPDFLoader, "pdfplumber": PDFPlumberLoader, "docling": cd.parsers.docling()},
    paths="./contracts",
    facts=["Payment is due within thirty days"],
)
report.to_pandas("loaders")

OCR and name detection are optional extras. complydoc doctor shows what is installed.

What it reports

  • Token cost: text and vision tokens per document, priced across models and three extraction paths (text layer, OCR, vision).
  • Extraction readiness: measured signals such as text layer coverage, tables, columns, rotation, scan resolution, garbled characters, glyph codes and repeated headers.
  • Identifiers: personal and financial identifiers in UK, US and EU formats, checksum-validated where a checksum exists, masked in every output.
  • Hidden content and prompt injection: text a reader does not see and a model does (white or invisible text, hidden formatting, Unicode tag characters), and passages that read as instructions to a model.
  • Loader inspection and comparison: what a loader extracted, the metadata it attached, the network connections it attempted, and where several loaders disagree, over a single input or a folder, with failures, load time and estimated parser cost per loader.
  • Expected facts: whether passages you expect appear in each loader's text, as exact or fuzzy matches.
  • Parser presets: Docling, Unstructured, LlamaParse and Azure Document Intelligence; hosted parsers run only with allow_network=True.
  • Tables: every part of a report as a pandas DataFrame, and a summary in Jupyter.
  • Python API: scanning and masking strings, chunk inspection, baselines with diffs and assertions for tests, streaming audits, cached loader output, and pipeline steps for LangChain and LlamaIndex.
  • Masked text: the documents' text with identifiers covered, chunked and counted in tokens.
complydoc architecture: files and loader output feed four analyses (cost, readiness, identifiers, hidden content) that produce a report and masked text, inside a network guard

How it works

  • Offline: outbound sockets and DNS lookups are blocked for the whole run, and each report records that the guard was armed.
  • Unmeasured values: a signal that cannot be measured is reported as unmeasured and left out of scores.
  • Evidence tiers: every finding states how it was established, whether by checksum, corroboration, pattern or model.
  • Configurable: prices, signal weights and detection patterns are YAML files, and name detection can use your own spaCy models, per language, or any other model as a detector.
  • One report: a self-contained HTML file and a JSON file with a versioned schema.

Resources

License

MIT

Release files for complydoc 0.4.2

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

Source distribution (sdist)

Source distribution for complydoc 0.4.2
File Size Uploaded
complydoc-0.4.2.tar.gz 3.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for complydoc 0.4.2
File Interpreter ABI Platform
complydoc-0.4.2-py3-none-any.whl Python 3 none any Details

Total release size: 6.7 MB

Release files / complydoc-0.4.2.tar.gz

Download URL complydoc-0.4.2.tar.gz
Size 3.8 MB
Tags Source
SHA-256 checksum
How to use checksums
f94a5c3b13b0e479637c3434bd60a57d7c0d81653630edc511b69de3470caa68
BLAKE2b-256 checksum
How to use checksums
521d2a9866f4a191379ed0d308a2f93b2a32712959c7928890cbf42862903e2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 15, 2026.

Transparency log

Release files / complydoc-0.4.2-py3-none-any.whl

Download URL complydoc-0.4.2-py3-none-any.whl
Size 2.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c3c070143dc2ed050ecfb0cb45f8b692e4eea8066254a09eac5619275bcfceab
BLAKE2b-256 checksum
How to use checksums
0f1a62abc69a70ba4d44ad9c3c4bb09d08c683f57c7f865fe9f042012b83ed8c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.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 Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.1

2 release files

0.5.0

2 release files

0.4.12

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

This release

0.4.2 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 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