Allow extractors to provide message flags by ljodal · Pull Request #838 · python-babel/babel · GitHub
Skip to content

Allow extractors to provide message flags#838

Draft
ljodal wants to merge 3 commits into
python-babel:masterfrom
ljodal:python-format-extract
Draft

Allow extractors to provide message flags#838
ljodal wants to merge 3 commits into
python-babel:masterfrom
ljodal:python-format-extract

Conversation

@ljodal

@ljodal ljodal commented Jan 31, 2022

Copy link
Copy Markdown
Contributor

This adds a sixth value to the tuple returned by the extractor functions
which should be a set of flags.

Which flags should be applied to a message should be determined by the
extractor, as it depends on e.g. the file format being parsed. For
example "%s" should have the python-format flag if it was parsed from a
Python file and the c-format flag if it was extracted from a C file.

The logic of detecting python-format flags is also moved to the Python
extractor in this PR.

NOTE:

This is partially a breaking change. Backwards compability is maintained
with extractors that return 5-tuples instead of 6-tuples, but the
interface Babel exposes for extracting messages always returns 6-tuples.
I don't see a good way around this.

Removing the python-format detection from Message.init is also a
breaking change, but that could potentially be put back for now.

Fixes #35

This adds a sixth value to the tuple returned by the extractor functions
which should be a set of flags.

Which flags should be applied to a message should be determined by the
extractor, as it depends on e.g. the file format being parsed. For
example "%s" should have the python-format flag if it was parsed from a
Python file and the c-format flag if it was extracted from a C file.

The logic of detecting python-format flags is also moved to the Python
extractor in this PR.

NOTE:

This is partially a breaking change. Backwards compability is maintained
with extractors that return 5-tuples instead of 6-tuples, but the
interface Babel exposes for extracting messages always returns 6-tuples.
I don't see a good way around this.

Removing the python-format detection from Message.__init__ is also a
breaking change, but that could potentially be put back for now.
@ljodal

ljodal commented Jan 31, 2022

Copy link
Copy Markdown
Contributor Author

ljodal added a commit to ljodal/babel that referenced this pull request Jan 31, 2022
Building upon python-babel#838, this adds support for python-brace-format flags in
the python extractor.

Fixes python-babel#333
ljodal added a commit to ljodal/babel that referenced this pull request Feb 1, 2022
Building upon python-babel#838, this adds support for python-brace-format flags in
the python extractor.

Fixes python-babel#333
ljodal added a commit to ljodal/babel that referenced this pull request Feb 1, 2022
Building upon python-babel#838, this adds support for python-brace-format flags in
the python extractor.

Fixes python-babel#333
@chuckyblack

Copy link
Copy Markdown

I need this feature for custom extractor.
Without it the custom extractor cannot set flags.
The older version of babel had this feature, but it was removed.

@stianjensen

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

python-format flag incorrectly forced on all extractors

3 participants