# coding: utf-8
# Copyright (c) Max-Planck-Institut für Eisenforschung GmbH - Computational Materials Design (CM) Department
# Distributed under the terms of "New BSD License", see the LICENSE file.
from __future__ import print_function
import json
from pathlib2 import Path
from pyiron.base.generic.hdfio import FileHDFio
from pyiron.base.generic.parameters import GenericParameters
"""
Load input parameters for jupyter notebooks from external HDF5 or JSON file
"""
__author__ = "Osamu Waseda"
__copyright__ = (
"Copyright 2020, Max-Planck-Institut für Eisenforschung GmbH - "
"Computational Materials Design (CM) Department"
)
__version__ = "1.0"
__maintainer__ = "Jan Janssen"
__email__ = "janssen@mpie.de"
__status__ = "production"
__date__ = "Sep 1, 2019"
[docs]class Notebook(object):
"""
class for pyiron notebook objects
"""
[docs] @staticmethod
def get_custom_dict():
folder = Path(".").cwd().parts[-1]
hdf_file = Path(".").cwd().parents[1] / folder
hdf_file = str(hdf_file) + ".h5"
if Path(hdf_file).exists():
hdf = FileHDFio(hdf_file)
custom_dict = GenericParameters()
for k, v in zip(
hdf[folder + "/input/custom_dict/data_dict"]["Parameter"],
hdf[folder + "/input/custom_dict/data_dict"]["Value"],
):
custom_dict[k] = v
return custom_dict
elif Path("input.json").exists():
with open("input.json") as f:
return json.load(f)
else:
print(hdf_file, "not found")
return None
[docs] @staticmethod
def store_custom_output_dict(output_dict):
folder = Path(".").cwd().parts[-1]
hdf_file = Path(".").cwd().parents[1] / folder
hdf_file = str(hdf_file) + ".h5"
hdf = FileHDFio(hdf_file)
hdf[folder].create_group("output")
for k, v in output_dict.items():
hdf[folder + "/output"][k] = v