|
94 | 94 | get_private_kwargs, |
95 | 95 | identity, |
96 | 96 | load_config_path_context, |
| 97 | + merge_config, |
97 | 98 | return_parser_if_captured, |
98 | 99 | ) |
99 | 100 |
|
@@ -409,7 +410,7 @@ def _parse_defaults_and_environ( |
409 | 410 | environ = os.environ |
410 | 411 | with parser_context(load_value_mode=self.parser_mode): |
411 | 412 | cfg_env = self._load_env_vars(env=environ, defaults=defaults) |
412 | | - cfg = self.merge_config(cfg_env, cfg) |
| 413 | + cfg = merge_config(self, cfg_env, cfg) |
413 | 414 |
|
414 | 415 | return cfg |
415 | 416 |
|
@@ -457,13 +458,13 @@ def parse_args( # type: ignore[override] |
457 | 458 | if namespace: |
458 | 459 | if namespace_as_config: |
459 | 460 | cfg = self._parse_defaults_and_environ(defaults, env=False) |
460 | | - cfg = self.merge_config(namespace, cfg) |
| 461 | + cfg = merge_config(self, namespace, cfg) |
461 | 462 | if env or (env is None and self._default_env): |
462 | 463 | with parser_context(load_value_mode=self.parser_mode): |
463 | 464 | cfg_env = self._load_env_vars(env=os.environ, defaults=defaults) |
464 | | - cfg = self.merge_config(cfg_env, cfg) |
| 465 | + cfg = merge_config(self, cfg_env, cfg) |
465 | 466 | else: |
466 | | - cfg = self.merge_config(namespace, cfg) |
| 467 | + cfg = merge_config(self, namespace, cfg) |
467 | 468 |
|
468 | 469 | with parse_kwargs_context({"env": env, "defaults": defaults}): |
469 | 470 | cfg, unk = self._parse_known_args_internal(args=args, namespace=cfg) |
@@ -510,11 +511,11 @@ def parse_object( |
510 | 511 | try: |
511 | 512 | cfg = self._parse_defaults_and_environ(defaults, env) |
512 | 513 | if cfg_base: |
513 | | - cfg = self.merge_config(cfg_base, cfg) |
| 514 | + cfg = merge_config(self, cfg_base, cfg) |
514 | 515 |
|
515 | 516 | cfg = self._apply_actions(cfg) |
516 | 517 | cfg_apply = self._apply_actions(cfg_obj, prev_cfg=cfg) |
517 | | - cfg = self.merge_config(cfg_apply, cfg) |
| 518 | + cfg = merge_config(self, cfg_apply, cfg) |
518 | 519 |
|
519 | 520 | parsed_cfg = self._parse_common( |
520 | 521 | cfg=cfg, |
@@ -681,7 +682,7 @@ def parse_string( |
681 | 682 |
|
682 | 683 | if defaults or env: |
683 | 684 | cfg_base = self._parse_defaults_and_environ(defaults, env) |
684 | | - cfg = self.merge_config(cfg, cfg_base) |
| 685 | + cfg = merge_config(self, cfg, cfg_base) |
685 | 686 |
|
686 | 687 | parsed_cfg = self._parse_common( |
687 | 688 | cfg=cfg, |
@@ -1059,7 +1060,7 @@ def get_defaults(self, skip_validation: bool = False, **kwargs) -> Namespace: |
1059 | 1060 | if not default_config_file_content.strip(): |
1060 | 1061 | continue |
1061 | 1062 | cfg_file = self._load_config_parser_mode(default_config_file_content, prev_cfg=cfg) |
1062 | | - cfg = self.merge_config(cfg_file, cfg) |
| 1063 | + cfg = merge_config(self, cfg_file, cfg) |
1063 | 1064 | try: |
1064 | 1065 | with _ActionPrintConfig.skip_print_config(): |
1065 | 1066 | cfg = self._parse_common( |
@@ -1367,23 +1368,6 @@ def _apply_actions( |
1367 | 1368 | cfg[action_dest] = value |
1368 | 1369 | return cfg[parent_key] if parent_key else cfg |
1369 | 1370 |
|
1370 | | - def merge_config(self, cfg_from: Namespace, cfg_to: Namespace) -> Namespace: |
1371 | | - """Merges the first configuration into the second configuration. |
1372 | | -
|
1373 | | - Args: |
1374 | | - cfg_from: The configuration from which to merge. |
1375 | | - cfg_to: The configuration into which to merge. |
1376 | | -
|
1377 | | - Returns: |
1378 | | - A new object with the merged configuration. |
1379 | | - """ |
1380 | | - cfg_from = cfg_from.clone() |
1381 | | - cfg_to = cfg_to.clone() |
1382 | | - with parser_context(parent_parser=self): |
1383 | | - ActionTypeHint.discard_init_args_on_class_path_change(self, cfg_to, cfg_from) |
1384 | | - cfg_to.update(cfg_from) |
1385 | | - return cfg_to |
1386 | | - |
1387 | 1371 | def _check_value_key( |
1388 | 1372 | self, action: argparse.Action, value: Any, key: str, cfg: Namespace | None, append: bool = False |
1389 | 1373 | ) -> Any: |
|
0 commit comments