From 74e30aacc76e7573345e65e1c1b140a1e51522da Mon Sep 17 00:00:00 2001 From: Kadir Can Ozden <101993364+bysiber@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:45:35 +0300 Subject: [PATCH] Handle blank PO-Revision-Date and POT-Creation-Date headers When a PO file has a blank PO-Revision-Date or POT-Creation-Date header (e.g. generated by Poedit), _parse_datetime_header raises a ValueError because it cannot parse an empty string. Skip parsing when the header value is blank, preserving the catalog's existing default values instead of crashing. --- babel/messages/catalog.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/babel/messages/catalog.py b/babel/messages/catalog.py index 9a9739a72..05fa41b3c 100644 --- a/babel/messages/catalog.py +++ b/babel/messages/catalog.py @@ -582,10 +582,11 @@ def _set_mime_headers(self, headers: Iterable[tuple[str, str]]) -> None: self._num_plurals = int(params.get('nplurals', 2)) self._plural_expr = params.get('plural', '(n != 1)') elif name == 'pot-creation-date': - self.creation_date = _parse_datetime_header(value) + if value.strip(): + self.creation_date = _parse_datetime_header(value) elif name == 'po-revision-date': # Keep the value if it's not the default one - if 'YEAR' not in value: + if 'YEAR' not in value and value.strip(): self.revision_date = _parse_datetime_header(value) mime_headers = property(