v0.7.1 Release Notes¶
This patch release publishes the CLI and package import startup optimization work
completed under issues #107, #108, and #109.
Highlights¶
- The extraction CLI now always shows
--auto-page-breaks-dirin help output and validates support only when the option is actually used at runtime. - Lightweight CLI paths now avoid unnecessary heavy imports:
exstruct --help- extraction-style argv that do not route to edit commands
exstruct ops list- Public package imports are lighter:
import exstructimport exstruct.engine- exported names from
exstructandexstruct.editremain compatible while loading implementation modules lazily - Regression coverage now locks the startup boundary and validates that
lightweight import paths do not eagerly load extraction, edit, MCP, render,
or
pydanticdependencies.
Startup impact¶
Compared with v0.7.0, local median startup timings on the same Python
environment improved by approximately:
python -m exstruct.cli.main --help:2195 ms -> 64 ms(34.4xfaster)import exstruct:1039 ms -> 55 ms(19.0xfaster)python -m exstruct.cli.main ops list:1143 ms -> 207 ms(5.5xfaster)import exstruct.engine:1005 ms -> 223 ms(4.5xfaster)
These measurements were taken locally against v0.7.0 and the current
v0.7.1 code using the same virtual environment and direct source imports, so
exact numbers will vary by machine and startup conditions.
Notes¶
- No new CLI commands were added in
v0.7.1. - MCP tool names and payload shapes remain compatible in
v0.7.1. - Backend selection policy remains
auto/com/openpyxl. - The edit CLI
validatesubcommand once again propagatesRuntimeErrorinstead of converting it into handled CLI error output.