diff --git a/corrlib/__init__.py b/corrlib/__init__.py index 91b07f4..d9aff5f 100644 --- a/corrlib/__init__.py +++ b/corrlib/__init__.py @@ -21,3 +21,4 @@ from .initialization import * from .meas_io import * from .find import * from .version import __version__ +from .config import * diff --git a/corrlib/find.py b/corrlib/find.py index 3e73240..6aa795c 100644 --- a/corrlib/find.py +++ b/corrlib/find.py @@ -5,7 +5,8 @@ import json import pandas as pd import numpy as np from .input.implementations import codes -from .tools import k2m, get_file +from .tools import k2m +from .tracker import get_file # this will implement the search functionality diff --git a/corrlib/main.py b/corrlib/main.py index fc7663f..90e786f 100644 --- a/corrlib/main.py +++ b/corrlib/main.py @@ -5,7 +5,8 @@ import os from .git_tools import move_submodule import shutil from .find import _project_lookup_by_id -from .tools import list2str, str2list, get_file +from .tools import list2str, str2list +from .tracker import get_file from typing import Union diff --git a/corrlib/meas_io.py b/corrlib/meas_io.py index 7122ca0..594e668 100644 --- a/corrlib/meas_io.py +++ b/corrlib/meas_io.py @@ -7,7 +7,8 @@ import json from typing import Union from pyerrors import Obs, Corr, dump_object, load_object from hashlib import sha256 -from .tools import cached, get_file +from .tools import cached +from .tracker import get_file import shutil diff --git a/corrlib/tracker.py b/corrlib/tracker.py new file mode 100644 index 0000000..7230386 --- /dev/null +++ b/corrlib/tracker.py @@ -0,0 +1,22 @@ +import os +from configparser import ConfigParser +from .trackers import datalad as dl + + +def get_tracker(path): + config_path = os.path.join(path, '.corrlib') + config = ConfigParser() + if os.path.exists(config_path): + config.read(config_path) + tracker = config.get('core', 'tracker', fallback='datalad') + return tracker + + +def get_file(path, file): + tracker = get_tracker(path) + if tracker == 'datalad': + dl.get_file(path, file) + else: + raise ValueError(f"Tracker {tracker} is not supported.") + return + diff --git a/corrlib/trackers/datalad.py b/corrlib/trackers/datalad.py new file mode 100644 index 0000000..5d3deaa --- /dev/null +++ b/corrlib/trackers/datalad.py @@ -0,0 +1,11 @@ +import datalad.api as dl +import os + + +def get_file(path, file): + if file == "backlogger.db": + print("Downloading database...") + else: + print("Downloading data...") + dl.get(os.path.join(path, file), dataset=path) + print("> downloaded file") \ No newline at end of file