Source code for geomfum.dataset._utils

"""Dataset Utilities Module. This module contains utility classes for dataset management."""

import logging
import os
from urllib.request import urlretrieve


[docs] class DownloadableFile: """(Down)loadable file. Parameters ---------- name : str File name (without directory). url : str Url for file download. """ def __init__(self, name, url): self.name = name self.url = url
[docs] def get_filename(self, data_dir): """Get filename after (down)loading. Uses cached file if already in the system. Parameters ---------- data_dir : str Directory where to store/access data. Returns ------- file_path : str File name including directory. """ file_path = os.path.join(data_dir, self.name) if os.path.exists(file_path): logging.info( f"Data has already been downloaded... using cached file ('{file_path}')." ) else: logging.info(f"Downloading '{file_path}' from {self.url} to '{data_dir}'.") urlretrieve(self.url, file_path) return file_path