def test_merge_params_on_empty_src(changes, expected): params = {} merged = merge_params(params, changes) assert merged == expected == params assert params is merged # references should be preserved assert encoder.c_make_encoder assert is_serializable(params)
def test_merge_params(changes, expected): params = {"foo": {"bar": 1, "baz": 2}, "goo": {"bag": 3}, "lorem": False} merged = merge_params(params, changes) assert merged == expected == params assert params is merged # references should be preserved assert encoder.c_make_encoder assert is_serializable(params)
def _update_params(self, params: dict): """Update experiment params files with the specified values.""" from dvc.utils.collections import merge_params from dvc.utils.serialize import MODIFIERS logger.debug("Using experiment params '%s'", params) for params_fname in params: path = PathInfo(params_fname) suffix = path.suffix.lower() modify_data = MODIFIERS[suffix] with modify_data(path, fs=self.repo.fs) as data: merge_params(data, params[params_fname]) # Force params file changes to be staged in git # Otherwise in certain situations the changes to params file may be # ignored when we `git stash` them since mtime is used to determine # whether the file is dirty self.scm.add(list(params.keys()))
def _update_params(self, params: dict): """Update experiment params files with the specified values.""" from dvc.utils.collections import NewParamsFound, merge_params from dvc.utils.serialize import MODIFIERS logger.debug("Using experiment params '%s'", params) for path in params: suffix = self.repo.fs.path.suffix(path).lower() modify_data = MODIFIERS[suffix] with modify_data(path, fs=self.repo.fs) as data: try: merge_params(data, params[path], allow_new=False) except NewParamsFound as e: msg = self._format_new_params_msg(e.new_params, path) raise MissingParamsError(msg) # Force params file changes to be staged in git # Otherwise in certain situations the changes to params file may be # ignored when we `git stash` them since mtime is used to determine # whether the file is dirty self.scm.add(list(params.keys()))
def test_merge_params_on_empty_src(changes, expected): params = {} merged = merge_params(params, changes) assert merged == expected == params assert params is merged # references should be preserved
def test_merge_params(changes, expected): params = {"foo": {"bar": 1, "baz": 2}, "goo": {"bag": 3}, "lorem": False} merged = merge_params(params, changes) assert merged == expected == params assert params is merged # references should be preserved