Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
    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()))
Ejemplo n.º 4
0
    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()))
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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