mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-08 23:09:48 +01:00
add: ignore duplicated entries (#6286)
This commit is contained in:
+8
-1
@@ -43,7 +43,14 @@ def check_recursive_and_fname(args):
|
||||
|
||||
|
||||
def transform_targets(args):
|
||||
args.targets = ensure_list(args.targets)
|
||||
from funcy import count_reps
|
||||
|
||||
counts = count_reps(ensure_list(args.targets))
|
||||
dupes = [key for key, count in counts.items() if count > 1]
|
||||
if dupes:
|
||||
msg = ", ".join(f"[b]{key}[/]" for key in dupes)
|
||||
ui.error_write(f"ignoring duplicated targets: {msg}", styled=True)
|
||||
args.targets = list(counts)
|
||||
|
||||
|
||||
def check_arg_combinations(args):
|
||||
|
||||
@@ -61,6 +61,8 @@ class Console:
|
||||
style: str = None,
|
||||
sep: str = None,
|
||||
end: str = None,
|
||||
styled: bool = True,
|
||||
force: bool = True,
|
||||
) -> None:
|
||||
return self.write(
|
||||
*objects,
|
||||
@@ -68,6 +70,8 @@ class Console:
|
||||
sep=sep,
|
||||
end=end,
|
||||
stderr=True,
|
||||
force=force,
|
||||
styled=styled,
|
||||
)
|
||||
|
||||
def write(
|
||||
|
||||
@@ -1229,3 +1229,12 @@ def test_add_does_not_remove_stage_file_on_failure(
|
||||
assert str(exc_info.value) == exc_msg
|
||||
assert (tmp_dir / "foo.dvc").exists()
|
||||
assert (tmp_dir / stage.path).read_text() == dvcfile_contents
|
||||
|
||||
|
||||
def test_add_ignore_duplicated_targets(tmp_dir, dvc, capsys):
|
||||
tmp_dir.gen({"foo": "foo", "bar": "bar", "foobar": "foobar"})
|
||||
stages = dvc.add(["foo", "bar", "foobar", "bar", "foo"])
|
||||
|
||||
_, err = capsys.readouterr()
|
||||
assert len(stages) == 3
|
||||
assert "ignoring duplicated targets: foo, bar" in err
|
||||
|
||||
Reference in New Issue
Block a user