From cd42c03d5a5df23236da5c52aed64fa7f85936b4 Mon Sep 17 00:00:00 2001 From: Marvin Poul Date: Fri, 3 Jun 2022 02:22:35 +0200 Subject: [PATCH 1/2] Allow to pass delete_existing_job to TrainingContainer.sample --- .../atomistics/atomistics/job/trainingcontainer.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py b/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py index 427c24679..6f651f248 100644 --- a/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py +++ b/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py @@ -238,7 +238,8 @@ def from_hdf(self, hdf=None, group_name=None): self.input.from_hdf(self.project_hdf5, "parameters") def sample( - self, name: str, selector: Callable[[StructureStorage, int], bool] + self, name: str, selector: Callable[[StructureStorage, int], bool], + delete_existing_job: bool = False ) -> "TrainingContainer": """ Create a new TrainingContainer with structures filtered by selector. @@ -250,6 +251,7 @@ def sample( Args: name (str): name of the new TrainingContainer selector (Callable[[StructureStorage, int], bool]): callable that selects structure to include + delete_existing_job (bool): if job with name exist, remove it first Returns: :class:`.TrainingContainer`: new container with selected structures @@ -257,7 +259,7 @@ def sample( Raises: ValueError: if a job with the given `name` already exists. """ - cont = self.project.create.job.TrainingContainer(name) + cont = self.project.create.job.TrainingContainer(name, delete_existing_job=delete_existing_job) if not cont.status.initialized: raise ValueError(f"Job '{name}' already exists with status: {cont.status}!") cont._container = self._container.sample(selector) From 7cc85203e7f83445bd5996bafa0faa13e38aa796 Mon Sep 17 00:00:00 2001 From: Marvin Poul Date: Fri, 3 Jun 2022 02:24:07 +0200 Subject: [PATCH 2/2] Add error to sample if called on unfinished job --- pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py b/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py index 6f651f248..27d5f47e0 100644 --- a/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py +++ b/pyiron_contrib/atomistics/atomistics/job/trainingcontainer.py @@ -259,6 +259,8 @@ def sample( Raises: ValueError: if a job with the given `name` already exists. """ + if not self.status.finished: + raise ValueError(f"Job must be finished, not '{self.status}'!") cont = self.project.create.job.TrainingContainer(name, delete_existing_job=delete_existing_job) if not cont.status.initialized: raise ValueError(f"Job '{name}' already exists with status: {cont.status}!")