Skip to content

Commit

Permalink
Only create local data directories if necessary.
Browse files Browse the repository at this point in the history
Creating a local data directory with Pooch checks that the local
directory is writeable. This is important if downloading data, but if
the files already exist is unnecessary.

This came up because we would like to store data for Pooch in readable
but non-writable directories. In particular, the directories in which
our build system installs Python are not writable.
  • Loading branch information
shoyer committed Aug 15, 2023
1 parent d2d0202 commit ed7ed3f
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions pooch/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -217,15 +217,17 @@ def retrieve(
path = os_cache("pooch")
if fname is None:
fname = unique_file_name(url)
# Create the local data directory if it doesn't already exist and make the
# path absolute.
# Make the path absolute.
path = cache_location(path, env=None, version=None)
make_local_storage(path)

full_path = path.resolve() / fname
action, verb = download_action(full_path, known_hash)

if action in ("download", "update"):
# We need to write data, so create the local data directory if it
# doesn't already exist.
make_local_storage(path)

get_logger().info(
"%s data from '%s' to file '%s'.",
verb,
Expand Down Expand Up @@ -560,9 +562,6 @@ def fetch(self, fname, processor=None, downloader=None, progressbar=False):
"""
self._assert_file_in_registry(fname)

# Create the local data directory if it doesn't already exist
make_local_storage(str(self.abspath))

url = self.get_url(fname)
full_path = self.abspath / fname
known_hash = self.registry[fname]
Expand All @@ -574,6 +573,10 @@ def fetch(self, fname, processor=None, downloader=None, progressbar=False):
)

if action in ("download", "update"):
# We need to write data, so create the local data directory if it
# doesn't already exist.
make_local_storage(str(self.abspath))

get_logger().info(
"%s file '%s' from '%s' to '%s'.",
verb,
Expand Down

0 comments on commit ed7ed3f

Please sign in to comment.