Source code for pyiron_base.cli.reloadfile
# 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.
import os
import shutil
from argparse import ArgumentParser, Namespace
from h5io_browser.base import _open_hdf
from pyiron_base import Project
from pyiron_base.state import state
[docs]
def register(parser: ArgumentParser) -> None:
parser.add_argument(
"-i",
"--input-path",
type=os.path.abspath,
)
parser.add_argument(
"-o",
"--output-path",
type=os.path.abspath,
)
[docs]
def main(args: Namespace) -> None:
with _open_hdf(filename=args.input_path, mode="r") as f:
job_name = list(f.keys())[0]
project_path = os.path.join(os.path.abspath("."), job_name + ".h5")
shutil.copy(args.input_path, project_path)
file = os.path.basename(project_path)
job_name = os.path.splitext(file)[0]
db_project_path = state.database.top_path(project_path)
project = os.path.dirname(project_path)
db_project = project + "/"
if db_project_path is not None:
db_project = db_project.replace(db_project_path, "")
job_reload = Project(project).load_from_jobpath(
job_id=None,
db_entry={
"id": 1000,
"status": "",
"chemicalformula": "",
"job": job_name,
"subjob": "/" + job_name,
"projectpath": db_project_path,
"project": db_project,
"hamilton": "",
"hamversion": "",
"parentid": None,
"masterid": None,
},
convert_to_object=True,
)
job_reload.status.initialized = True
job_reload.server.run_mode.modal = True
job_reload.run()
shutil.copy(project_path, args.output_path)