diff --git a/dvc/analytics.py b/dvc/analytics.py index d658c9191..7939ba5c3 100644 --- a/dvc/analytics.py +++ b/dvc/analytics.py @@ -14,7 +14,7 @@ from dvc.lock import Lock, LockError from dvc.repo import Repo from dvc.scm import SCM from dvc.utils import env2bool, is_binary, makedirs -from dvc.utils.compat import str, FileNotFoundError +from dvc.utils.compat import str, FileNotFoundError, fspath_py35 logger = logging.getLogger(__name__) @@ -54,7 +54,7 @@ def send(path): url = "https://analytics.dvc.org" headers = {"content-type": "application/json"} - with open(str(path)) as fobj: + with open(fspath_py35(path)) as fobj: requests.post(url, data=fobj, headers=headers, timeout=5) diff --git a/dvc/config.py b/dvc/config.py index 76de6cf84..32c7a0977 100644 --- a/dvc/config.py +++ b/dvc/config.py @@ -13,7 +13,7 @@ from voluptuous import All, Any, Lower, Range, Coerce, Match from dvc.exceptions import DvcException from dvc.exceptions import NotDvcRepoError -from dvc.utils.compat import open, str, pathlib +from dvc.utils.compat import open, str, pathlib, fspath logger = logging.getLogger(__name__) @@ -342,8 +342,8 @@ class Config(object): # pylint: disable=too-many-instance-attributes return ret def _load_configs(self): - system_config_file = str(self.get_system_config_dir() / self.CONFIG) - global_config_file = str(self.get_global_config_dir() / self.CONFIG) + system_config_file = fspath(self.get_system_config_dir() / self.CONFIG) + global_config_file = fspath(self.get_global_config_dir() / self.CONFIG) self._system_config = configobj.ConfigObj(system_config_file) self._global_config = configobj.ConfigObj(global_config_file) diff --git a/dvc/lock.py b/dvc/lock.py index 7ffe54fc3..1f3df8ebb 100644 --- a/dvc/lock.py +++ b/dvc/lock.py @@ -10,7 +10,7 @@ from funcy.py3 import lkeep from dvc.exceptions import DvcException from dvc.utils import makedirs -from dvc.utils.compat import is_py3, str +from dvc.utils.compat import is_py3, str, fspath DEFAULT_TIMEOUT = 5 @@ -58,7 +58,7 @@ if is_py3: # [1] https://github.com/iterative/dvc/issues/2582 self._hostname = socket.gethostname() - self._lockfile = str(lockfile) + self._lockfile = fspath(lockfile) self._lifetime = timedelta(days=365) # Lock for good by default self._separator = flufl.lock.SEP self._set_claimfile() @@ -111,7 +111,7 @@ else: """ def __init__(self, lockfile, tmp_dir=None): - self.lockfile = str(lockfile) + self.lockfile = fspath(lockfile) self._lock = None @property diff --git a/tests/func/test_analytics.py b/tests/func/test_analytics.py index bd698703d..97a71d6d0 100644 --- a/tests/func/test_analytics.py +++ b/tests/func/test_analytics.py @@ -2,7 +2,7 @@ import mock import json from dvc.main import main -from dvc.utils.compat import str +from dvc.utils.compat import fspath @mock.patch("dvc.analytics.send") @@ -11,5 +11,5 @@ def test_daemon_analytics(mock_send, tmp_path): fname = tmp_path / "report" fname.write_text(str(json.dumps(report))) - assert 0 == main(["daemon", "analytics", str(fname)]) + assert 0 == main(["daemon", "analytics", fspath(fname)]) assert mock_send.called