[tune] Support Configuration Merging (#3584)

* merge configs

* deep merge

* lint

* add resolve

* test
This commit is contained in:
Richard Liaw
2018-12-26 20:07:11 +09:00
committed by Eric Liang
parent 4ce3818be5
commit 6e2d7a9ba1
6 changed files with 94 additions and 46 deletions
@@ -93,6 +93,21 @@ _STANDARD_IMPORTS = {
_MAX_RESOLUTION_PASSES = 20
def resolve_nested_dict(nested_dict):
"""Flattens a nested dict by joining keys into tuple of paths.
Can then be passed into `format_vars`.
"""
res = {}
for k, v in nested_dict.items():
if isinstance(v, dict):
for k_, v_ in resolve_nested_dict(v).items():
res[(k, ) + k_] = v_
else:
res[(k, )] = v
return res
def format_vars(resolved_vars):
out = []
for path, value in sorted(resolved_vars.items()):