From 61109c4bd4d60a79d7cb5f216a8286ddff6fb30b Mon Sep 17 00:00:00 2001 From: Mohamed Morsy Date: Tue, 12 Apr 2022 07:59:00 +0200 Subject: [PATCH] allow header_comment to be passed as an option to extract_message (#720) Fixes #82 Co-authored-by: Aarni Koskela --- babel/messages/frontend.py | 8 ++++++-- tests/messages/test_frontend.py | 9 +++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/babel/messages/frontend.py b/babel/messages/frontend.py index 6e3686ecc..487f28028 100644 --- a/babel/messages/frontend.py +++ b/babel/messages/frontend.py @@ -26,7 +26,7 @@ from babel import __version__ as VERSION from babel import Locale, localedata from babel.core import UnknownLocaleError -from babel.messages.catalog import Catalog +from babel.messages.catalog import Catalog, DEFAULT_HEADER from babel.messages.extract import DEFAULT_KEYWORDS, DEFAULT_MAPPING, check_and_call_extract_file, extract_from_dir from babel.messages.mofile import write_mo from babel.messages.pofile import read_po, write_po @@ -350,6 +350,8 @@ class extract_messages(Command): ('ignore-dirs=', None, 'Patterns for directories to ignore when scanning for messages. ' 'Separate multiple patterns with spaces (default ".* ._")'), + ('header-comment=', None, + 'header comment for the catalog'), ] boolean_options = [ 'no-default-keywords', 'no-location', 'omit-header', 'no-wrap', @@ -394,6 +396,7 @@ def initialize_options(self): self.strip_comments = False self.include_lineno = True self.ignore_dirs = None + self.header_comment = None def finalize_options(self): if self.input_dirs: @@ -478,7 +481,8 @@ def run(self): version=self.version, msgid_bugs_address=self.msgid_bugs_address, copyright_holder=self.copyright_holder, - charset=self.charset) + charset=self.charset, + header_comment=(self.header_comment or DEFAULT_HEADER)) for path, method_map, options_map in mappings: def callback(filename, method, options): diff --git a/tests/messages/test_frontend.py b/tests/messages/test_frontend.py index 54a371f49..4ed30ec5a 100644 --- a/tests/messages/test_frontend.py +++ b/tests/messages/test_frontend.py @@ -1518,3 +1518,12 @@ def test_extract_ignore_dirs(monkeypatch, capsys, tmp_path, with_underscore_igno # unless we opt in to ignore it again assert ('ssshhh....' in pot_content) != with_underscore_ignore assert ('_hidden_by_default' in pot_content) != with_underscore_ignore + + +def test_extract_header_comment(monkeypatch, tmp_path): + pot_file = tmp_path / 'temp.pot' + monkeypatch.chdir(project_dir) + cmdinst = configure_cli_command(f"extract . -o '{pot_file}' --header-comment 'Boing' ") + cmdinst.run() + pot_content = pot_file.read_text() + assert 'Boing' in pot_content