From c59f935cc51f798237e2852dc49cb607958729b9 Mon Sep 17 00:00:00 2001 From: Alex Hall Date: Mon, 4 Jul 2022 15:29:06 +0200 Subject: [PATCH] Switch uses of %r to %s with quotes to avoid escaped backslashes in logs, especially in windows paths --- dvc/analytics.py | 2 +- dvc/commands/freeze.py | 2 +- dvc/commands/get_url.py | 2 +- dvc/commands/ls/__init__.py | 2 +- dvc/config.py | 2 +- dvc/daemon.py | 4 ++-- dvc/dvcfile.py | 2 +- dvc/repo/experiments/executor/base.py | 4 ++-- dvc/repo/experiments/pull.py | 2 +- dvc/repo/experiments/push.py | 2 +- dvc/repo/gc.py | 2 +- dvc/stage/__init__.py | 6 +++--- dvc/ui/pager.py | 2 +- dvc/updater.py | 6 +++--- 14 files changed, 20 insertions(+), 20 deletions(-) diff --git a/dvc/analytics.py b/dvc/analytics.py index ce7dc9026..af4823ea9 100644 --- a/dvc/analytics.py +++ b/dvc/analytics.py @@ -187,4 +187,4 @@ def _find_or_create_user_id(): return user_id except LockError: - logger.debug("Failed to acquire %r", lockfile) + logger.debug("Failed to acquire '%s'", lockfile) diff --git a/dvc/commands/freeze.py b/dvc/commands/freeze.py index 1ee35698c..c558f178e 100644 --- a/dvc/commands/freeze.py +++ b/dvc/commands/freeze.py @@ -16,7 +16,7 @@ class CmdFreezeBase(CmdBase): try: func(target) except DvcException: - logger.exception("failed to %s %r", name, target) + logger.exception("failed to %s '%s'", name, target) ret = 1 return ret diff --git a/dvc/commands/get_url.py b/dvc/commands/get_url.py index 31e66406d..b3c8a4bd5 100644 --- a/dvc/commands/get_url.py +++ b/dvc/commands/get_url.py @@ -18,7 +18,7 @@ class CmdGetUrl(CmdBaseNoRepo): Repo.get_url(self.args.url, out=self.args.out, jobs=self.args.jobs) return 0 except DvcException: - logger.exception("failed to get %r", self.args.url) + logger.exception("failed to get '%s'", self.args.url) return 1 diff --git a/dvc/commands/ls/__init__.py b/dvc/commands/ls/__init__.py index 70ee16324..1bc7e68a4 100644 --- a/dvc/commands/ls/__init__.py +++ b/dvc/commands/ls/__init__.py @@ -42,7 +42,7 @@ class CmdList(CmdBaseNoRepo): ui.write("\n".join(entries)) return 0 except DvcException: - logger.exception("failed to list %r", self.args.url) + logger.exception("failed to list '%s'", self.args.url) return 1 diff --git a/dvc/config.py b/dvc/config.py index 104a7f1c3..7e455f6b5 100644 --- a/dvc/config.py +++ b/dvc/config.py @@ -187,7 +187,7 @@ class Config(dict): filename = self.files[level] fs = self._get_fs(level) - logger.debug("Writing %r.", filename) + logger.debug("Writing '%s'.", filename) fs.makedirs(os.path.dirname(filename)) diff --git a/dvc/daemon.py b/dvc/daemon.py index f9bc95e2b..90acc8d1f 100644 --- a/dvc/daemon.py +++ b/dvc/daemon.py @@ -81,7 +81,7 @@ def _spawn_posix(cmd, env): def _spawn(cmd, env): - logger.debug("Trying to spawn %r", cmd) + logger.debug("Trying to spawn '%s'", cmd) if os.name == "nt": _spawn_windows(cmd, env) @@ -90,7 +90,7 @@ def _spawn(cmd, env): else: raise NotImplementedError - logger.debug("Spawned %r", cmd) + logger.debug("Spawned '%s'", cmd) def daemon(args): diff --git a/dvc/dvcfile.py b/dvc/dvcfile.py index 05f7d3cb2..04db6d5f6 100644 --- a/dvc/dvcfile.py +++ b/dvc/dvcfile.py @@ -197,7 +197,7 @@ class SingleStageFile(FileMixin): assert not isinstance(stage, PipelineStage) if self.verify: check_dvcfile_path(self.repo, self.path) - logger.debug("Saving information to %r.", relpath(self.path)) + logger.debug("Saving information to '%s'.", relpath(self.path)) dump_yaml(self.path, serialize.to_single_stage_file(stage)) self.repo.scm_context.track_file(self.relpath) diff --git a/dvc/repo/experiments/executor/base.py b/dvc/repo/experiments/executor/base.py index c3d7fd03d..18d25d7b3 100644 --- a/dvc/repo/experiments/executor/base.py +++ b/dvc/repo/experiments/executor/base.py @@ -348,7 +348,7 @@ class BaseExecutor(ABC): if git_remote == dvc.root_dir: logger.warning( - "%r points to the current Git repo, experiment " + "'%s' points to the current Git repo, experiment " "Git refs will not be pushed. But DVC cache and run cache " "will automatically be pushed to the default DVC remote " "(if any) on each experiment commit.", @@ -604,7 +604,7 @@ class BaseExecutor(ABC): except BaseException as exc: # pylint: disable=broad-except logger.warning( "Something went wrong while auto pushing experiment " - "to the remote %r: %s", + "to the remote '%s': %s", git_remote, exc, ) diff --git a/dvc/repo/experiments/pull.py b/dvc/repo/experiments/pull.py index c4fe2e6e4..1316d954c 100644 --- a/dvc/repo/experiments/pull.py +++ b/dvc/repo/experiments/pull.py @@ -82,7 +82,7 @@ def _pull( force: bool, ) -> Mapping[SyncStatus, List["ExpRefInfo"]]: refspec_list = [f"{exp_ref}:{exp_ref}" for exp_ref in refs] - logger.debug("git pull experiment %r -> '%s'", git_remote, refspec_list) + logger.debug("git pull experiment '%s' -> '%s'", git_remote, refspec_list) with TqdmGit(desc="Fetching git refs") as pbar: results: Mapping[str, SyncStatus] = repo.scm.fetch_refspecs( diff --git a/dvc/repo/experiments/push.py b/dvc/repo/experiments/push.py index 2759ccb5a..cbc146636 100644 --- a/dvc/repo/experiments/push.py +++ b/dvc/repo/experiments/push.py @@ -85,7 +85,7 @@ def _push( from ...scm import GitAuthError refspec_list = [f"{exp_ref}:{exp_ref}" for exp_ref in refs] - logger.debug("git push experiment %r -> '%s'", refspec_list, git_remote) + logger.debug("git push experiment '%s' -> '%s'", refspec_list, git_remote) with TqdmGit(desc="Pushing git refs") as pbar: try: diff --git a/dvc/repo/gc.py b/dvc/repo/gc.py index c7437ce7e..d90ac8233 100644 --- a/dvc/repo/gc.py +++ b/dvc/repo/gc.py @@ -76,7 +76,7 @@ def gc( removed = ogc(odb, used_obj_ids, jobs=jobs) if not removed: - logger.info("No unused %r cache to remove.", scheme) + logger.info("No unused '%s' cache to remove.", scheme) if not cloud: return diff --git a/dvc/stage/__init__.py b/dvc/stage/__init__.py index 565bc9006..5f4f02f70 100644 --- a/dvc/stage/__init__.py +++ b/dvc/stage/__init__.py @@ -323,7 +323,7 @@ class Stage(params.StageParams): status = dep.status() if status: logger.debug( - "Dependency '%s' of %s changed because it is %r.", + "Dependency '%s' of %s changed because it is '%s'.", dep, self, status[str(dep)], @@ -337,7 +337,7 @@ class Stage(params.StageParams): status = out.status() if status: logger.debug( - "Output '%s' of %s changed because it is %r.", + "Output '%s' of %s changed because it is '%s'.", out, self, status[str(out)], @@ -452,7 +452,7 @@ class Stage(params.StageParams): m = None else: m = compute_md5(self) - logger.debug("Computed %s md5: %r", self, m) + logger.debug("Computed %s md5: '%s'", self, m) return m def save(self, allow_missing=False): diff --git a/dvc/ui/pager.py b/dvc/ui/pager.py index fe0f8857d..2fe53703f 100644 --- a/dvc/ui/pager.py +++ b/dvc/ui/pager.py @@ -85,7 +85,7 @@ def find_pager(): def pager(text: str) -> None: _pager = find_pager() - logger.trace("Using pager: %r", _pager) # type: ignore[attr-defined] + logger.trace("Using pager: '%s'", _pager) # type: ignore[attr-defined] make_pager(_pager)(text) diff --git a/dvc/updater.py b/dvc/updater.py index 2ab871009..2d8ad8428 100644 --- a/dvc/updater.py +++ b/dvc/updater.py @@ -37,7 +37,7 @@ class Updater: ctime = os.path.getmtime(self.updater_file) outdated = time.time() - ctime >= self.TIMEOUT if outdated: - logger.debug("%r is outdated", self.updater_file) + logger.debug("'%s' is outdated", self.updater_file) return outdated def _with_lock(self, func, action): @@ -48,7 +48,7 @@ class Updater: func() except LockError: logger.debug( - "Failed to acquire %r before %s updates", + "Failed to acquire '%s' before %s updates", self.lock.lockfile, action, ) @@ -79,7 +79,7 @@ class Updater: latest = info["version"] except Exception as exc: # pylint: disable=broad-except logger.debug( - "%r is not a valid json: %s", self.updater_file, exc + "'%s' is not a valid json: %s", self.updater_file, exc ) self.fetch() return