add: remove file (#9548)

* add: remove `file`

Follow up to #9547.

* Update add.py

* fix tests
This commit is contained in:
skshetry
2023-06-06 18:44:19 +05:45
committed by GitHub
parent 3759535d43
commit 36fd69be21
3 changed files with 7 additions and 13 deletions
+2 -9
View File
@@ -51,9 +51,6 @@ def validate_args(targets: List[str], **kwargs: Any) -> None:
invalid_opt = None
to_remote = kwargs.get("to_remote")
if len(targets) > 1 and kwargs.get("file"):
raise InvalidArgumentError("cannot use '--file' with multiple targets")
if to_remote or kwargs.get("out"):
message = "{option} can't be used with "
message += "--to-remote" if to_remote else "-o"
@@ -83,7 +80,6 @@ PIPELINE_TRACKED_UPDATE_FMT = (
def get_or_create_stage(
repo: "Repo",
target: str,
file: Optional[str] = None,
external: bool = False,
out: Optional[str] = None,
to_remote: bool = False,
@@ -106,7 +102,7 @@ def get_or_create_stage(
stage = repo.stage.create(
single_stage=True,
validate=False,
fname=file or path,
fname=path,
wdir=wdir,
outs=[out],
external=external,
@@ -225,11 +221,10 @@ def _add(stage: "Stage", source: Optional[str] = None, no_commit: bool = False)
@locked
@scm_context
def add( # noqa: PLR0913
def add(
repo: "Repo",
targets: Union["StrOrBytesPath", Iterator["StrOrBytesPath"]],
no_commit: bool = False,
file: Optional[str] = None,
external: bool = False,
glob: bool = False,
out: Optional[str] = None,
@@ -245,7 +240,6 @@ def add( # noqa: PLR0913
validate_args(
add_targets,
no_commit=no_commit,
file=file,
external=external,
out=out,
remote=remote,
@@ -256,7 +250,6 @@ def add( # noqa: PLR0913
target: get_or_create_stage(
repo,
target,
file=file,
external=external,
out=out,
to_remote=to_remote,
+2 -2
View File
@@ -645,10 +645,10 @@ def test_add_from_data_dir(tmp_dir, scm, dvc):
def test_add_parent_dir(tmp_dir, scm, dvc):
tmp_dir.gen({"dir": {"file1": "file1 content"}})
out_path = os.path.join("dir", "file1")
dvc.add(out_path, file=out_path + ".dvc")
dvc.add(out_path)
with pytest.raises(OverlappingOutputPathsError) as e:
dvc.add("dir", file="dir.dvc")
dvc.add("dir")
assert str(e.value) == (
"Cannot add 'dir', because it is overlapping with other DVC "
"tracked output: '{out}'.\n"
+3 -2
View File
@@ -1,4 +1,5 @@
import os
import shutil
import textwrap
import pytest
@@ -138,10 +139,10 @@ def test_move_should_save_stage_info(tmp_dir, dvc):
def test_should_move_to_dir_on_non_default_stage_file(tmp_dir, dvc):
stage_file_name = "stage.dvc"
tmp_dir.gen({"file": "file_content"})
dvc.add("file", file=stage_file_name)
dvc.add("file")
shutil.move("file.dvc", "stage.dvc")
os.mkdir("directory")
dvc.move("file", "directory")