From f0a67b31b863457c9bbde54c500dd6f047c27b19 Mon Sep 17 00:00:00 2001 From: Sam Waseda Date: Wed, 16 Nov 2022 09:50:30 +0100 Subject: [PATCH 1/3] create rewrite_hdf --- pyiron_base/jobs/job/core.py | 6 ++++++ pyiron_base/jobs/master/generic.py | 5 +---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/pyiron_base/jobs/job/core.py b/pyiron_base/jobs/job/core.py index 54ad555a1..337f00106 100644 --- a/pyiron_base/jobs/job/core.py +++ b/pyiron_base/jobs/job/core.py @@ -297,6 +297,12 @@ def project_hdf5(self, project): """ self._hdf5 = project.copy() + def rewrite_hdf5(self): + self.project_hdf5.remove_group() + self.project_hdf5 = self.project_hdf5.__class__( + self.project, self.job_name, h5_path="/" + self.job_name + ) + @property def project(self): """ diff --git a/pyiron_base/jobs/master/generic.py b/pyiron_base/jobs/master/generic.py index ee6087df6..0674159c8 100644 --- a/pyiron_base/jobs/master/generic.py +++ b/pyiron_base/jobs/master/generic.py @@ -237,10 +237,7 @@ def pop(self, i=-1): del self._job_name_lst[i] with self.project_hdf5.open("input") as hdf5_input: hdf5_input["job_list"] = self._job_name_lst - job_to_return.project_hdf5.remove_group() - job_to_return.project_hdf5 = self.project_hdf5.__class__( - self.project, job_to_return.job_name, h5_path="/" + job_to_return.job_name - ) + job_to_return.rewrite_hdf5() if isinstance(job_to_return, GenericMaster): for sub_job in job_to_return._job_object_dict.values(): self._child_job_update_hdf(parent_job=job_to_return, child_job=sub_job) From e749a716293eb5c1c167aec6dd6dc967676227b1 Mon Sep 17 00:00:00 2001 From: Sam Waseda Date: Wed, 16 Nov 2022 09:56:29 +0100 Subject: [PATCH 2/3] change rewrite to relocate and add the possibility of specifying the h5 location --- pyiron_base/jobs/job/core.py | 6 ++++-- pyiron_base/jobs/master/generic.py | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pyiron_base/jobs/job/core.py b/pyiron_base/jobs/job/core.py index 337f00106..f5b2dedb5 100644 --- a/pyiron_base/jobs/job/core.py +++ b/pyiron_base/jobs/job/core.py @@ -297,10 +297,12 @@ def project_hdf5(self, project): """ self._hdf5 = project.copy() - def rewrite_hdf5(self): + def relocate_hdf5(self, h5_path=None): + if h5_path is None: + h5_path = "/" + self.job_name self.project_hdf5.remove_group() self.project_hdf5 = self.project_hdf5.__class__( - self.project, self.job_name, h5_path="/" + self.job_name + self.project, self.job_name, h5_path=h5_path ) @property diff --git a/pyiron_base/jobs/master/generic.py b/pyiron_base/jobs/master/generic.py index 0674159c8..70744e91e 100644 --- a/pyiron_base/jobs/master/generic.py +++ b/pyiron_base/jobs/master/generic.py @@ -237,7 +237,7 @@ def pop(self, i=-1): del self._job_name_lst[i] with self.project_hdf5.open("input") as hdf5_input: hdf5_input["job_list"] = self._job_name_lst - job_to_return.rewrite_hdf5() + job_to_return.relocate_hdf5() if isinstance(job_to_return, GenericMaster): for sub_job in job_to_return._job_object_dict.values(): self._child_job_update_hdf(parent_job=job_to_return, child_job=sub_job) From c5ddbf4df9336e4212cfd15f60cca2779a65b93c Mon Sep 17 00:00:00 2001 From: Sam Waseda Date: Wed, 16 Nov 2022 15:26:50 +0100 Subject: [PATCH 3/3] add string for someone who might need it in the future --- pyiron_base/jobs/job/core.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyiron_base/jobs/job/core.py b/pyiron_base/jobs/job/core.py index f5b2dedb5..bfc49f887 100644 --- a/pyiron_base/jobs/job/core.py +++ b/pyiron_base/jobs/job/core.py @@ -298,6 +298,10 @@ def project_hdf5(self, project): self._hdf5 = project.copy() def relocate_hdf5(self, h5_path=None): + """ + Relocate the hdf file. This function is needed when the child job is + spawned by a parent job (cf. pyiron_base.jobs.master.generic) + """ if h5_path is None: h5_path = "/" + self.job_name self.project_hdf5.remove_group()