Repository navigation
Releases: velofy/terbium
Release list
terbium 2.0.0
The first PyPI release since 0.9.7. 0.10.0 was published on GitHub only, so pip install terbium-parse now brings everything listed under 0.10.0 as well as the fixes below.
2.0.0 follows 0.10.0 directly. The jump in the version number is not an API break: code written for 0.10.0 runs unchanged.
Fixed
- No more
FutureWarning: The fitz API is deprecatedon every import and every command run with PyMuPDF 2.0. terbium imports PyMuPDF aspymupdf, and falls back tofitzonly on PyMuPDF 1.24.0 to 1.24.2, which predate that name. - Resume lines that mention a section word are kept. A line such as "Led a team with deep Python experience" was read as a heading: it was dropped from the content and started a new section. A heading is now a line that is exactly a section word, or a line of at most four words in which a word starts with a section word or phrase, such as "Work Experience", "Academics" or "Educational Background". A section word inside another word, as in "Inexperienced", no longer counts. Bulleted lines are always content. The trade-off: a heading of five words or more, such as "Education, Training and Professional Development", is now a content line of the section before it.
- The image manifest's
dominant_colorno longer usesImage.getdata, which Pillow 12.1 deprecates and Pillow 14 removes. On Pillow 14 the colour would have come back empty with no error.
Documentation
- The README leads with the terbium app tile, names NodeMaven as primary sponsor with the October tracking links, and no longer says that PyPI serves 0.9.7. Its links to repository files are absolute, so they work on PyPI.
- The
parseandbuild_catalogdocstrings and the developer notes indocs/(DESIGN, ROADMAP, TAXONOMY) now match the code.
Known issues
- The 0.10.0 known issues below still apply.
build_catalog(..., ocr=True)without Tesseract prints the advice for an OCR pass that already ran, so it points at the vision lane instead of telling you to install Tesseract. Leaveocr="auto".build_catalog(..., ai=True)skips the AI fill for photo rows; passterbium.AI().- A phone number written
(555) 123-4567comes out as555) 123-4567. - When an invoice or receipt is read from its page layout rather than a table, a label line that ends in digits, such as
Receipt No: R-8891orDate: 03/22/2024, also becomes a line item, and the total can appear as twototalrecords. - A resume line of four words or fewer that names a section is still read as a heading, so
Skills: Python, SQLstarts the skills section and the text after the colon is dropped, and a short line such as "Experienced Python developer" starts the experience section.
pip install -U terbium-parsePyPI: https://pypi.org/project/terbium-parse/2.0.0/ · Docs: https://velofy.co/terbium/
terbium 0.10.0
terbium 0.10.0 adds invoices, receipts, resumes, and image files to the parser, and fixes the invoice AI step so it actually runs. This is the first tagged GitHub release.
What changed
- Added: document classification picks the schema for you: catalog, lookbook, transaction, resume, table, or deck. Override it with
--typeordoc_type=. - Added: a transaction schema for invoices, bills, receipts, purchase orders, and quotes, and a resume schema.
- Added: CSV, self-contained HTML, and terminal table output for every document type, with new command line flags
--type,--html, and--open. - Added: PNG, JPG, WEBP, and TIFF input through local Tesseract OCR.
- Added: GPT, Kimi, and Grok as optional AI providers. Claude stays the default when several keys are set. terbium still runs fully without any key.
- Fixed: the invoice and receipt AI step never ran, because it looked for a record type the parser does not emit. It now fills missing summary fields and adds line items only when the parser found none.
- Fixed:
used_aiis reported only when a model call returned a response. - Fixed: terminal tables line up when cells are truncated.
- Fixed: the catalog message no longer suggests
ocr=Truewhen Tesseract is not installed. - Fixed: OpenAI o-series models are called with
max_completion_tokens. The OpenAI-based extras now needopenai>=1.45. - Tests: 46 pass on Python 3.9 and 3.12.
Known issues
- The
opustier on OpenAI (o3-mini) may reject image input. This was not verified against the API. - Model IDs for each provider are taken from source and were not verified against the provider APIs.
Install
PyPI serves 0.9.7 until 0.10.0 is uploaded there. Until then, install 0.10.0 from this release:
pip install "https://github.com/velofy/terbium/releases/download/v0.10.0/terbium_parse-0.10.0-py3-none-any.whl"
Or from the tag:
pip install "git+https://github.com/velofy/terbium@v0.10.0"
The package installs as terbium-parse and imports as terbium. The PyPI project named terbium is unrelated.