From: Aarni Koskela Date: Mon, 13 Jan 2025 11:20:52 +0000 (+0200) Subject: Make `_force_text` a free function X-Git-Tag: v2.17.0~7^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9461eaa2dfabbe63d206b67d73bae830fb47cd1e;p=thirdparty%2Fbabel.git Make `_force_text` a free function --- 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])