def update_env_from_obj(new_env, env): # Order isn't important if isinstance(new_env, dict): new_env = [new_env] if not new_env: return for item in new_env: for k, v in flatten(item): env[k] = compiled_value(v)
def update_env_from_file(fname, env): new_env = yaml.safe_load(open(fname)) flat_env = {} # Order isn't important if isinstance(new_env, dict): new_env = [new_env] if not new_env: return for item in new_env: for k, v in flatten(item): env[k] = v
def test_flatten_dict_numbers(): d = {'foo': {'bar': {'baz': 1001}}} assert dict(flatten(d)) == {'foo_bar_baz': '1001'}
def test_flatten_dict_strings(): d = {'foo': {'bar': {'baz': 'hello world'}}} assert dict(flatten(d)) == {'foo_bar_baz': 'hello world'}
def test_include_JSON(self): yml = os.path.join(HERE, 'envs', 'with_json.yml') for k, v in flatten(yaml.safe_load(open(yml))): assert json.loads(v)