From 81a010674e41a16677938626c101a2858191b4ea Mon Sep 17 00:00:00 2001 From: Ronan Lamy Date: Fri, 2 Sep 2022 17:46:56 +0100 Subject: [PATCH] fs: avoid costly redundant dvcignore check when calling ._info() from .ls() --- dvc/fs/dvc.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dvc/fs/dvc.py b/dvc/fs/dvc.py index c5153f553..ea9ad6be5 100644 --- a/dvc/fs/dvc.py +++ b/dvc/fs/dvc.py @@ -382,7 +382,10 @@ class _DvcFileSystem(AbstractFileSystem): # pylint:disable=abstract-method entry_key = key + (name,) try: info = self._info( - entry_key, entry_path, ignore_subrepos=ignore_subrepos + entry_key, + entry_path, + ignore_subrepos=ignore_subrepos, + check_ignored=False, ) except FileNotFoundError: continue @@ -413,7 +416,7 @@ class _DvcFileSystem(AbstractFileSystem): # pylint:disable=abstract-method ignore_subrepos = kwargs.get("ignore_subrepos", True) return self._info(key, path, ignore_subrepos=ignore_subrepos) - def _info(self, key, path, ignore_subrepos=True): + def _info(self, key, path, ignore_subrepos=True, check_ignored=True): repo, fs, fs_path, dvc_fs, dvc_parts = self._get_fs_pair_2(key) dvcignore = repo.dvcignore @@ -431,7 +434,7 @@ class _DvcFileSystem(AbstractFileSystem): # pylint:disable=abstract-method if fs: try: fs_info = fs.info(fs_path) - if dvcignore.is_ignored( + if check_ignored and dvcignore.is_ignored( fs, fs_path, ignore_subrepos=ignore_subrepos ): fs_info = None