From 9461eaa2dfabbe63d206b67d73bae830fb47cd1e Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Mon, 13 Jan 2025 13:20:52 +0200 Subject: [PATCH] Make `_force_text` a free function --- babel/messages/catalog.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/babel/messages/catalog.py b/babel/messages/catalog.py index 331ff563..3bea7b07 100644 --- a/babel/messages/catalog.py +++ b/babel/messages/catalog.py @@ -280,6 +280,14 @@ def parse_separated_header(value: str) -> dict[str, str]: return dict(m.get_params()) +def _force_text(s: str | bytes, encoding: str = 'utf-8', errors: str = 'strict') -> str: + if isinstance(s, str): + return s + if isinstance(s, bytes): + return s.decode(encoding, errors) + return str(s) + + class Catalog: """Representation of a message catalog.""" @@ -463,17 +471,10 @@ class Catalog: headers.append(("Generated-By", f"Babel {VERSION}\n")) return headers - def _force_text(self, s: str | bytes, encoding: str = 'utf-8', errors: str = 'strict') -> str: - if isinstance(s, str): - return s - if isinstance(s, bytes): - return s.decode(encoding, errors) - return str(s) - def _set_mime_headers(self, headers: Iterable[tuple[str, str]]) -> None: for name, value in headers: - name = self._force_text(name.lower(), encoding=self.charset) - value = self._force_text(value, encoding=self.charset) + name = _force_text(name.lower(), encoding=self.charset) + value = _force_text(value, encoding=self.charset) if name == 'project-id-version': parts = value.split(' ') self.project = ' '.join(parts[:-1]) -- 2.47.2