Skip to content

v2.5.8: COM Engine Speed Optimizations

Choose a tag to compare

@Dry1ceD7 Dry1ceD7 released this 20 Mar 10:45
· 165 commits to main since this release

What's New in v2.5.8 πŸš€

This release brings massive Performance Optimizations for Windows users and fixes a critical bug where .xls files were being unintentionally deleted after processing.

⚑ Performance: COM Single-Boot Architecture

Previously, processing legacy .xls files on Windows booted the entire Microsoft Excel COM engine twice (once to convert the file, once to process the data).

We have completely refactored the pipeline to use a Single-Boot Architecture:

  • process_ledger_com now opens legacy .xls files natively, processes all the data in memory, and natively runs SaveAs(.xlsx) in one seamless operation.
  • openpyxl's API read-only pre-scan now falls back to native xlrd extraction to bypass the conversion entirely.
  • Result: Processing legacy .xls files on Windows is now significantly faster.

πŸ› Bug Fixes

  • CRITICAL: Fixed an aggressive cleanup script that was running os.remove() on .xls files immediately after the COM engine successfully finished processing them, resulting in the file seemingly "doing nothing." Processed .xls files are now correctly mapped to {original_name}.xlsx alongside the source file.

βš™οΈ Technical Details

  • Added xlrd fallback support inside the engine.py API pre-scanner.
  • com_engine.py explicitly handles FileFormat=51 SaveAs operations natively.
  • Dispatcher correctly bypasses xls_converter.py when running on sys.platform == "win32".