Source code for geomfum.dataset.notebook
"""Datasets for noteboos/docs."""
import os
from ._defaults import DATA_DIR
from ._utils import DownloadableFile
[docs]
class NotebooksDataset:
"""Dataset to use within notebooks.
Parameters
----------
data_dir : str
Directory where to store/access data.
load_at_startup : bool
Whether to (down)load files at startup.
"""
def __init__(self, data_dir=None, load_at_startup=False):
if data_dir is None:
data_dir = os.environ.get("GEOMFUM_DATA_DIR", DATA_DIR)
self.data_dir = data_dir
pyfm_data_url = "https://raw.githubusercontent.com/RobinMagnet/pyFM/refs/heads/master/examples/data/"
self.files = {
"cat-00": DownloadableFile("cat-00.off", f"{pyfm_data_url}/cat-00.off"),
"lion-00": DownloadableFile("lion-00.off", f"{pyfm_data_url}/lion-00.off"),
}
os.makedirs(data_dir, exist_ok=True)
if load_at_startup:
self.get_filenames()
[docs]
def get_filenames(self):
"""Get filenames after (down)loading.
Uses cached files if already in the system.
Returns
-------
file_paths : list[str]
File names including directory.
"""
return [
file.get_filename(data_dir=self.data_dir) for file in self.files.values()
]
[docs]
def get_filename(self, index):
"""Get filename after (down)loading.
Uses cached file if already in the system.
Parameters
----------
index : str
File index in the dataset.
Returns
-------
file_path : str
File name including directory.
"""
return self.files[index].get_filename(data_dir=self.data_dir)