From 0e9a5e60588d262e0fcf5744eef39b071fad680a Mon Sep 17 00:00:00 2001 From: Mauricio Villegas <5780272+mauvilsa@users.noreply.github.com> Date: Wed, 12 Nov 2025 19:10:22 -0500 Subject: [PATCH] Fix changing omegaconf_absolute_to_relative_paths not taking effect after parsing once --- CHANGELOG.rst | 2 ++ jsonargparse_tests/test_omegaconf.py | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 8abe128e..6dd3f808 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -29,6 +29,8 @@ Fixed (`#789 `__). - Misleading error message for invalid value for ``Literal`` strings (`#790 `__). +- Changing ``omegaconf_absolute_to_relative_paths`` not taking effect after + parsing once (`#805 `__). Changed ^^^^^^^ diff --git a/jsonargparse_tests/test_omegaconf.py b/jsonargparse_tests/test_omegaconf.py index f2c32d61..b8c21588 100644 --- a/jsonargparse_tests/test_omegaconf.py +++ b/jsonargparse_tests/test_omegaconf.py @@ -18,7 +18,7 @@ from jsonargparse_tests.conftest import get_parser_help, skip_if_omegaconf_unavailable if omegaconf_support: - from omegaconf import OmegaConf + from omegaconf import OmegaConf, errors @pytest.fixture(autouse=True) @@ -66,9 +66,6 @@ def test_omegaconf_interpolation_in_subcommands(mode, parser, subparser): subparser.add_argument("--source", type=str) subparser.add_argument("--target", type=str) - if mode == "omegaconf+absolute": - set_parsing_settings(omegaconf_absolute_to_relative_paths=True) - parser.parser_mode = mode.replace("absolute", "") subcommands = parser.add_subcommands() subcommands.add_subcommand("sub", subparser) @@ -77,6 +74,12 @@ def test_omegaconf_interpolation_in_subcommands(mode, parser, subparser): "source": "hello", "target": "${.source}" if mode == "omegaconf+" else "${source}", } + + if mode == "omegaconf+absolute": + with pytest.raises(errors.InterpolationKeyError): + parser.parse_args(["sub", f"--config={yaml_dump(config)}"]) + set_parsing_settings(omegaconf_absolute_to_relative_paths=True) + cfg = parser.parse_args(["sub", f"--config={yaml_dump(config)}"]) assert cfg.sub.target == "hello"