Research CommonsResearch Commons
docparser/API reference

API reference

The docparser public surface — WorkspaceLayout, per-format parsers, parse_path, run_all, and caption_image.

This page summarizes the public API. All functions are importable from the top-level docparser package (pip install rc-docparser, then import docparser).

WorkspaceLayout

WorkspaceLayout(raw_dir, parsed_dir, assets_dir, cache_dir)

A dataclass describing where parser output lives. Use .under(root) for the default data/raw + data/parsed + data/assets + .cache layout under a root, and .ensure() to create the directories.

layout = WorkspaceLayout.under("./project")
layout.ensure()

Per-format parsers

Each returns a payload dict and (by default) writes document.md / document.json.

FunctionRequiresNotes
parse_docx(source, layout=None, *, captioner=None, write_outputs=True)core
parse_xlsx(source, layout=None, *, captioner=None, write_outputs=True)core
parse_pdf(source, layout=None, *, captioner=None, write_outputs=True, extract_images=True, backend="builtin", ocr="off", extract_tables=False)[pdf]backends/OCR/tables need their extras
parse_html(source, layout=None, *, captioner=None, write_outputs=True, use_trafilatura=True)[html]source may be a path or http(s):// URL
parse_pptx(source, layout=None, *, captioner=None, write_outputs=True)[pptx]
parse_epub(source, layout=None, *, captioner=None, write_outputs=True)[epub]
parse_text(source, layout=None, ...)core.txt / .md
parse_csv(source, layout=None, ...)core.csv / .tsv

parse_path

parse_path(source, layout=None, **kwargs)

Dispatches by file extension to the right parser. PDF-only kwargs (backend, ocr, extract_tables) are forwarded to PDFs.

run_all

run_all(
    layout, *,
    use_vlm=True,
    only=None,
    max_images=None,
    continue_on_error=False,
    vlm_provider=None,
    vlm_model=None,
    pdf_backend="builtin",
    ocr="off",
    extract_tables=False,
)

Walks layout.raw_dir, parses everything supported, and writes a top-level CORPUS.md and data/parsed/corpus.json.

caption_image

caption_image(
    image_bytes, *,
    mime, doc_name, nearby_caption, context,
    provider=None, model=None, layout=None, ...
)  # -> VLMResult

Captions a single image with a vision-language model. Requires the [vlm] extra. See Image captioning (VLM).