Skip to content

BOT Exrate v2.5.7

Choose a tag to compare

@Dry1ceD7 Dry1ceD7 released this 20 Mar 10:24
· 169 commits to main since this release

BOT Exrate Release v2.5.7

🏗️ Native COM Engine Architecture (Windows 11 Primary)

  • Full COM Pipeline (core/com_engine.py): The entire data processing engine has been reconstructed to use win32com.client as the primary file I/O engine on Windows 11. An invisible Microsoft Excel instance reads/writes ledger files natively, guaranteeing 100% preservation of all enterprise fonts, styles, borders, and layouts.
  • OS-Aware Dispatcher: engine.py now detects sys.platform == 'win32' and routes processing to the COM engine. On macOS/Linux, it gracefully falls back to openpyxl.
  • Zombie-Safe Memory Management: The ExcelCOM context manager wraps all Excel operations in a strict try/finally lifecycle. excel.Quit() is always called — even if the script crashes mid-processing — preventing zombie EXCEL.EXE processes from lingering in Task Manager.
  • Absolute Pathing Enforced: Every file path is converted via os.path.abspath() before touching the COM interface, preventing COM crashes from relative path resolution failures.
  • VENV-Free Global Compatibility: run.bat now runs on the global system Python installation (no virtual environment) for frictionless enterprise deployment.

Native Excel Formatting (Zero-Fidelity Loss)

  • Windows Enterprise Ready (win32com): Handles 100% of .xls to .xlsx conversions natively through Microsoft Excel. pywin32>=306 injected as a platform-aware dependency.
  • Bulletproof COM Execution: Traps pywintypes.com_error and ImportError gracefully, falling back to LibreOffice if Excel is unavailable.
  • Mac / Linux Native (LibreOffice): Seamlessly interfaces with soffice --headless on non-Windows platforms.

Holiday Parser Fix (Invisible BOT API Weekends)

  • Smart Static Gap-Filler Overlay: Injects unmoving Thai Public Holidays (e.g., Songkran April 13-15) directly onto the grid when the BOT API omits them from weekend dates.

Windows UX Headless Deployments

  • run.bat / run_windows.bat for instant GUI launch without terminal windows.
  • scripts/build_windows.bat with PyInstaller --noconsole --windowed flags.
  • Global sys.excepthook for headless crash logging to error.log + GUI popup.