Sniffs the format on page 1: printed row numbers -> gridded mode (unchanged); UUID-keyed rows -> new headerless mode, which anchors rows on per-record UUIDs and takes the column map from the page-1 header labels. Handles fused cells (ID+Name+Org+networks), mid-value line wraps, two-timestamp Time Frame ranges, wrapped header labels, and per-export schema drift. Validated against three monthly JC PD audits: 120/120 cross-engine spot checks, 0 anomalies, field-identical to the standalone converter it replaces. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012bQ28wRBiQYcSR9FzV9U7c
20 lines
470 B
TOML
20 lines
470 B
TOML
[build-system]
|
|
requires = ["setuptools>=61"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "pinion-pdf"
|
|
version = "1.1.0"
|
|
description = "Turn a spreadsheet that was printed to PDF back into a CSV, and prove the conversion is right."
|
|
readme = "README.md"
|
|
requires-python = ">=3.9"
|
|
license = { text = "MIT" }
|
|
authors = [{ name = "David Adams" }]
|
|
dependencies = ["pymupdf"]
|
|
|
|
[project.scripts]
|
|
pinion = "pinion.cli:main"
|
|
|
|
[tool.setuptools]
|
|
packages = ["pinion"]
|