diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 50965891..a2a57b2c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -15,6 +15,13 @@ paths are considered internals and can change in minor and patch releases. v4.45.0 (unreleased) -------------------- +Fixed +^^^^^ +- Overrides for nested keys in dict. Issue (`#823 + `__). +- ``Issue-823`` (`#824 + `__). + Added ^^^^^ - Signature methods now when given ``sub_configs=True``, list of paths types can diff --git a/jsonargparse/_typehints.py b/jsonargparse/_typehints.py index a7fa7fea..910ed000 100644 --- a/jsonargparse/_typehints.py +++ b/jsonargparse/_typehints.py @@ -919,7 +919,11 @@ def adapt_typehints( elif typehint_origin in mapping_origin_types: if isinstance(val, NestedArg): if isinstance(prev_val, dict): - val = {**prev_val, val.key: val.val} + if isinstance(val.key, str) and "." in val.key: + key_prefix, key_suffix = val.key.split(".", 1) + val = {**prev_val, key_prefix: {key_suffix: val.val}} + else: + val = {**prev_val, val.key: val.val} else: val = {val.key: val.val} elif isinstance(val, MappingProxyType):