Skip to content

Commit

Permalink
output: use strings instead of PathInfo for performance reasons (#3663)
Browse files Browse the repository at this point in the history
* output: don't use PathInfo when collecting used dir cache

* fix windows path handling
  • Loading branch information
pmrowla authored Apr 23, 2020
1 parent d1640cf commit a2de48b
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions dvc/output/base.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import logging
import os
from urllib.parse import urlparse
from copy import copy

Expand Down Expand Up @@ -390,11 +391,21 @@ def _collect_used_dir_cache(
else:
return cache

path = str(self.path_info)
filter_path = str(filter_info) if filter_info else None
is_win = os.name == "nt"
for entry in self.dir_cache:
checksum = entry[self.remote.PARAM_CHECKSUM]
info = self.path_info / entry[self.remote.PARAM_RELPATH]
if not filter_info or info.isin_or_eq(filter_info):
cache.add(self.scheme, checksum, str(info))
entry_relpath = entry[self.remote.PARAM_RELPATH]
if is_win:
entry_relpath = entry_relpath.replace("/", os.sep)
entry_path = os.path.join(path, entry_relpath)
if (
not filter_path
or entry_path == filter_path
or entry_path.startswith(filter_path + os.sep)
):
cache.add(self.scheme, checksum, entry_path)

return cache

Expand Down

0 comments on commit a2de48b

Please sign in to comment.