๐ ๏ธ Development
Working on omniread itself.
๐ Repository layout
| Path | Purpose |
|---|---|
omniread/ |
The library package (core + html, pdf, csv, xlsx modules) |
omniread/*.pyi |
Type stubs kept in sync with implementations |
tests/ |
End-to-end and unit tests against mock transports/clients |
covers |
โ |
docs/lib/ |
Generated library reference (docforge, flat layout) |
docs/mcp/ |
Machine-readable bundle served by the MCP server |
docs/wiki/ |
This hand-written wiki |
๐ง Setup
๐งช Tests
Run the suite (offline; a mock httpx transport and mock PDF client are used):
Coverage spans end-to-end scrape โ parse flows for HTML, PDF, and XLSX, plus client validation and CSV/XLSX parsing edge cases.
โ Quality gates
The CI quality gate runs, matching the Drone pipeline:
๐ Building documentation (docforge)
The site is generated by docforge
and served per kind under site/{kind}:
--module-is-sourcerenders the flatdocs/lib/layout (no nesting underomniread/), matchingdocforge.nav.ymlanddocs/mkdocs.lib.yml.--mcpregenerates the structured bundle indocs/mcp/.--wikibuilds this wiki.gen_api.py(if present) regenerates the API docs.
Preview locally:
๐ Read Next
- Extending OmniRead โ custom parsers, scrapers, clients.
- Overview โ the core architecture.