from git import Repo
from git import Actor
from .results import EnsembleResults
import os.path as osp
import pickle as pkl
[docs]def magpy_actor():
return Actor("magpy-shelf", "github.com/owlas/magpy")
[docs]def shelve_results(results, repo_path, name):
repo = Repo(repo_path)
assert not repo.bare
index = repo.index
results_path = osp.join(repo.working_tree_dir, name)
with open(results_path, 'wb') as f:
if isinstance(results, EnsembleResults):
pkl.dump(results.results, f)
else:
pkl.dump(results, f)
index.add([results_path])
index.commit("Added results ref:"+name, author=magpy_actor(), committer=magpy_actor())
print('Shelved!')
print('Shelf repo:', repo_path)
print('Object name:', name)
[docs]def grab_results(repo_path, name):
repo = Repo(repo_path)
assert not repo.bare
results_path = osp.join(repo.working_tree_dir, name)
with open(results_path, 'rb') as f:
res = pkl.load(f)
if isinstance(res, list):
results = EnsembleResults(res)
else:
results = res
return results