From 3ae948758b19ef789b95f22584b6d3bd1751b136 Mon Sep 17 00:00:00 2001 From: zwh Date: Wed, 30 Sep 2020 15:14:04 +0800 Subject: [PATCH 1/6] bug fixed bug description: 1, environment: OS which default character is not 'UTF-8'. For example windows 10 which default character is 'gbk'. 2, operation: python setup.py install Traceback (most recent call last): File "setup.py", line 149, in long_description=open("README.rst", "r").read(), UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 41: illegal multibyte sequence --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index fe8595989d..a21ef78f52 100644 --- a/setup.py +++ b/setup.py @@ -147,7 +147,7 @@ def run(self): name="dvc", version=version, description="Git for data scientists - manage your code and data together", - long_description=open("README.rst", "r").read(), + long_description=open("README.rst", "r", encoding="UTF-8").read(), author="Dmitry Petrov", author_email="dmitry@dvc.org", download_url="https://github.com/iterative/dvc", From fa5db477816b9494b89d7c3194e1358f1978f982 Mon Sep 17 00:00:00 2001 From: zwh Date: Wed, 30 Sep 2020 15:16:05 +0800 Subject: [PATCH 2/6] bug #4251 fixed https://github.com/iterative/dvc/issues/4251 --- dvc/command/get_url.py | 2 +- dvc/repo/get_url.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/dvc/command/get_url.py b/dvc/command/get_url.py index 015e4119ba..4770d645f4 100644 --- a/dvc/command/get_url.py +++ b/dvc/command/get_url.py @@ -14,7 +14,7 @@ def run(self): from dvc.repo import Repo try: - Repo.get_url(self.args.url, out=self.args.out) + Repo.get_url(self.args.url, out=self.args.out, in_repo=False) return 0 except DvcException: logger.exception(f"failed to get '{self.args.url}'") diff --git a/dvc/repo/get_url.py b/dvc/repo/get_url.py index 7aad361e8e..374af6cbb0 100644 --- a/dvc/repo/get_url.py +++ b/dvc/repo/get_url.py @@ -6,7 +6,7 @@ @staticmethod -def get_url(url, out=None): +def get_url(url, out=None, in_repo=True): out = resolve_output(url, out) if os.path.exists(url): @@ -16,6 +16,7 @@ def get_url(url, out=None): (dep,) = dependency.loads_from(None, [url]) (out,) = output.loads_from(None, [out], use_cache=False) - dep.save() + if in_repo: + dep.save() dep.download(out) out.save() From f524c727b16e1e715a975c91053827d5d796ab2f Mon Sep 17 00:00:00 2001 From: zwh Date: Wed, 30 Sep 2020 16:55:27 +0800 Subject: [PATCH 3/6] bug #4251 fixed https://github.com/iterative/dvc/issues/4251 --- tests/unit/command/test_get_url.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/command/test_get_url.py b/tests/unit/command/test_get_url.py index 9b4a5d54c4..958050972d 100644 --- a/tests/unit/command/test_get_url.py +++ b/tests/unit/command/test_get_url.py @@ -11,4 +11,4 @@ def test_get_url(mocker): assert cmd.run() == 0 - m.assert_called_once_with("src", out="out") + m.assert_called_once_with("src", out="out", in_repo=False) From 28e99f83f4372080abba29a6aa03ec53838b3502 Mon Sep 17 00:00:00 2001 From: "omar.zhou" Date: Sat, 3 Oct 2020 12:37:14 +0800 Subject: [PATCH 4/6] Revert "bug #4251 fixed https://github.com/iterative/dvc/issues/4251" This reverts commit f524c727 --- tests/unit/command/test_get_url.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/command/test_get_url.py b/tests/unit/command/test_get_url.py index 958050972d..9b4a5d54c4 100644 --- a/tests/unit/command/test_get_url.py +++ b/tests/unit/command/test_get_url.py @@ -11,4 +11,4 @@ def test_get_url(mocker): assert cmd.run() == 0 - m.assert_called_once_with("src", out="out", in_repo=False) + m.assert_called_once_with("src", out="out") From 13a27a1060f60ff6ead9e9a181c70b0f03f7e01c Mon Sep 17 00:00:00 2001 From: "omar.zhou" Date: Sat, 3 Oct 2020 12:37:32 +0800 Subject: [PATCH 5/6] Revert "bug #4251 fixed https://github.com/iterative/dvc/issues/4251" This reverts commit fa5db477 --- dvc/command/get_url.py | 2 +- dvc/repo/get_url.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/dvc/command/get_url.py b/dvc/command/get_url.py index 4770d645f4..015e4119ba 100644 --- a/dvc/command/get_url.py +++ b/dvc/command/get_url.py @@ -14,7 +14,7 @@ def run(self): from dvc.repo import Repo try: - Repo.get_url(self.args.url, out=self.args.out, in_repo=False) + Repo.get_url(self.args.url, out=self.args.out) return 0 except DvcException: logger.exception(f"failed to get '{self.args.url}'") diff --git a/dvc/repo/get_url.py b/dvc/repo/get_url.py index 374af6cbb0..7aad361e8e 100644 --- a/dvc/repo/get_url.py +++ b/dvc/repo/get_url.py @@ -6,7 +6,7 @@ @staticmethod -def get_url(url, out=None, in_repo=True): +def get_url(url, out=None): out = resolve_output(url, out) if os.path.exists(url): @@ -16,7 +16,6 @@ def get_url(url, out=None, in_repo=True): (dep,) = dependency.loads_from(None, [url]) (out,) = output.loads_from(None, [out], use_cache=False) - if in_repo: - dep.save() + dep.save() dep.download(out) out.save() From b7203ed15fd68c1f7345ea2f4fb3bf9bba2a97b8 Mon Sep 17 00:00:00 2001 From: "omar.zhou" Date: Sat, 3 Oct 2020 12:41:00 +0800 Subject: [PATCH 6/6] Fix bug #4251 We can check if the source exists by using `dep.exists` --- dvc/repo/get_url.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dvc/repo/get_url.py b/dvc/repo/get_url.py index 7aad361e8e..5430637c65 100644 --- a/dvc/repo/get_url.py +++ b/dvc/repo/get_url.py @@ -16,6 +16,7 @@ def get_url(url, out=None): (dep,) = dependency.loads_from(None, [url]) (out,) = output.loads_from(None, [out], use_cache=False) - dep.save() + if not dep.exists: + raise dep.DoesNotExistError(dep) dep.download(out) out.save()