Paper Office
paper-xlsxAPI referenceoracle

openpyxl.oracle

paper-xlsx 0.2.1 API reference

Bounded recalculation and certification via headless LibreOffice.

This library never calculates — a partial engine is a silent-wrongness machine. Instead it routes to a real implementation of Excel's semantics and reports MEASUREMENTS, never judgments:

  • recalc recomputes all cells on a TEMP COPY and scans for Excel error tokens. When given an output path, it splices eligible calculated caches into a separate copy of the original package; LibreOffice's rewritten archive is never delivered.
  • certify checks whether LibreOffice reproduces the file's own cached values (Excel's answer key for its current inputs) within the pinned tolerance, excluding cells downstream of nondeterministic volatile functions.

Driver rules, all measured: the caller's file is NEVER handed to LibreOffice (temp copies only — tested invariant); every invocation gets its own -env:UserInstallation profile (shared profiles fail nondeterministically); success is returncode == 0 AND the output file exists (soffice exits 0 on unloadable input); stderr is never parsed (successful runs emit noise); timeouts kill the whole process group. Custody never depends on this module: everything preservation-related works with no LibreOffice installed.

DATE_SERIAL_ABS_FLOOR

attributeDATE_SERIAL_ABS_FLOOR
= 1e-11

ERROR_TOKENS

attributeERROR_TOKENS
= frozenset(EXCEL_ERROR_CODES)

NUMERIC_ULPS

attributeNUMERIC_ULPS
= 4

ORACLE_UNSUPPORTED_FUNCS

attributeORACLE_UNSUPPORTED_FUNCS
= frozenset(['LAMBDA', 'LET', 'MAP', 'REDUCE', 'SCAN', 'BYROW', 'BYCOL', 'MAKEARRAY', 'ISOMITTED', 'STOCKHISTORY', 'RTD', 'WEBSERVICE', 'FILTERXML', 'IMAGE', 'PY', 'CUBEVALUE', 'CUBEMEMBER', 'CUBESET', 'CUBESETCOUNT', 'CUBERANKEDMEMBER', 'CUBEMEMBERPROPERTY', 'CUBEKPIMEMBER'])

On this page