in supporting-blog-content/onelake-connector-part-ii/connectors/config.py [0:0]
def _nest_configs(configuration, field, value):
"""
Update configuration field value taking into account the nesting.
Configuration is a hash of hashes, so we need to dive inside to do proper assignment.
E.g. _nest_config({}, "elasticsearch.bulk.queuesize", 20) will result in the following config:
{
"elasticsearch": {
"bulk": {
"queuesize": 20
}
}
}
"""
subfields = field.split(".")
last_key = subfields[-1]
current_leaf = configuration
for subfield in subfields[:-1]:
if subfield not in current_leaf:
current_leaf[subfield] = {}
current_leaf = current_leaf[subfield]
if isinstance(current_leaf.get(last_key), dict):
current_leaf[last_key] = dict(_merge_dicts(current_leaf[last_key], value))
else:
current_leaf[last_key] = value