Skip to content

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-dir in 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 exstruct
  • import exstruct.engine
  • exported names from exstruct and exstruct.edit remain 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 pydantic dependencies.

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.4x faster)
  • import exstruct: 1039 ms -> 55 ms (19.0x faster)
  • python -m exstruct.cli.main ops list: 1143 ms -> 207 ms (5.5x faster)
  • import exstruct.engine: 1005 ms -> 223 ms (4.5x faster)

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 validate subcommand once again propagates RuntimeError instead of converting it into handled CLI error output.