mxm commented on a change in pull request #11189: [BEAM-9446] Retain unknown
arguments when using uber jar job server.
URL: https://github.com/apache/beam/pull/11189#discussion_r399108204
##########
File path: sdks/python/apache_beam/options/pipeline_options.py
##########
@@ -285,10 +289,29 @@ def get_all_options(
cls._add_argparse_args(parser) # pylint: disable=protected-access
if add_extra_args_fn:
add_extra_args_fn(parser)
+
known_args, unknown_args = parser.parse_known_args(self._flags)
- if unknown_args:
- _LOGGER.warning("Discarding unparseable args: %s", unknown_args)
- result = vars(known_args)
+ if retain_unknown_options:
+ i = 0
+ while i < len(unknown_args):
+ # Treat all unary flags as booleans, and all binary argument values as
+ # strings.
+ if i + 1 >= len(unknown_args) or unknown_args[i + 1].startswith('-'):
+ split = unknown_args[i].rsplit('=')
Review comment:
Otherwise this will break options like `experiments=state_cache_size=1`.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services