fix: protect wb.close() with try/finally, strengthen width assertions, declare openpyxl dev dep #83

- I-1: Add explicit lower bounds to width assertions (>= 15 for autre, >= 40 for objet)
- I-2: Wrap write_excel() and close() in try/finally to ensure cleanup even on exception
- M-2: Add openpyxl to dev dependencies in pyproject.toml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Colin Maudry
2026-06-23 17:08:32 +02:00
parent 35e72645bd
commit e5ca7d62a3
3 changed files with 13 additions and 10 deletions
+10 -8
View File
@@ -579,11 +579,13 @@ def write_styled_excel(df: pl.DataFrame, buffer, worksheet: str = "DECP") -> Non
for col in df.columns
}
wb = xlsxwriter.Workbook(buffer, {"default_format_properties": {"text_wrap": True}})
ws = wb.add_worksheet(worksheet)
df.write_excel(
workbook=wb,
worksheet=ws,
header_format=_EXCEL_HEADER_FORMAT,
column_widths=col_widths,
)
wb.close()
try:
ws = wb.add_worksheet(worksheet)
df.write_excel(
workbook=wb,
worksheet=ws,
header_format=_EXCEL_HEADER_FORMAT,
column_widths=col_widths,
)
finally:
wb.close()