diff options
author | Yilei Yang <yileiyang@google.com> | 2022-11-07 08:02:49 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-11-07 08:03:21 -0800 |
commit | be755cb76df0aa7f11bb34c3712d9913a89c45fd (patch) | |
tree | f44bf4f6fbd5f63790eab578aecdf30da0a8ad03 | |
parent | c75edbb71e6942d72d41a57d9cd10c9628d4cb0a (diff) | |
download | absl-py-be755cb76df0aa7f11bb34c3712d9913a89c45fd.tar.gz |
Fix DEFINE_multi_enum_class's additional kwargs (e.g. short_name).
They were passed to the wrong function.
PiperOrigin-RevId: 486662821
Change-Id: I9015cad60073165eeca379bf2419612c33bcae0e
-rw-r--r-- | CHANGELOG.md | 5 | ||||
-rw-r--r-- | absl/flags/_defines.py | 10 | ||||
-rw-r--r-- | absl/flags/tests/flags_test.py | 11 |
3 files changed, 24 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ae82a55..5203fdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com). Nothing notable unreleased. +### Fixed + +* (flags) Additional kwargs (e.g. `short_name=`) to `DEFINE_multi_enum_class` + are now correctly passed to the underlying `Flag` object. + ## 1.3.0 (2022-10-11) ### Added diff --git a/absl/flags/_defines.py b/absl/flags/_defines.py index dce53ea..61354e9 100644 --- a/absl/flags/_defines.py +++ b/absl/flags/_defines.py @@ -859,11 +859,17 @@ def DEFINE_multi_enum_class( # pylint: disable=invalid-name,redefined-builtin """ return DEFINE_flag( _flag.MultiEnumClassFlag( - name, default, help, enum_class, case_sensitive=case_sensitive), + name, + default, + help, + enum_class, + case_sensitive=case_sensitive, + **args, + ), flag_values, module_name, required=required, - **args) + ) def DEFINE_alias( # pylint: disable=invalid-name diff --git a/absl/flags/tests/flags_test.py b/absl/flags/tests/flags_test.py index 77ed307..7cacbc8 100644 --- a/absl/flags/tests/flags_test.py +++ b/absl/flags/tests/flags_test.py @@ -1591,6 +1591,17 @@ class MultiEnumFlagsTest(absltest.TestCase): class MultiEnumClassFlagsTest(absltest.TestCase): + def test_short_name(self): + fv = flags.FlagValues() + flags.DEFINE_multi_enum_class( + 'fruit', + None, + Fruit, + 'Enum option that can occur multiple times', + flag_values=fv, + short_name='me') + self.assertEqual(fv['fruit'].short_name, 'me') + def test_define_results_in_registered_flag_with_none(self): fv = flags.FlagValues() enum_defaults = None |