def set_up_iteration(self, name: str, events=[]): """ Create a new iteration in the lasif project :param name: Name of iteration :type name: str :param events: list of events used in iteration, defaults to [] :type events: list, optional """ iterations = lapi.list_iterations(self.lasif_comm, output=True, verbose=False) if isinstance(iterations, list): if name in iterations: warnings.warn(f"Iteration {name} already exists", InversionsonWarning) event_specific = False if self.comm.project.meshes == "multi-mesh": event_specific = True lapi.set_up_iteration( self.lasif_root, iteration=name, events=events, event_specific=event_specific, )
def get_list_of_iterations(self, include_validation=False, only_validation=False) -> list: """ Filter the list of iterations :return: List of validation iterations :rtype: list """ iterations = lapi.list_iterations(self.lasif_comm, output=True) if only_validation: return [x for x in iterations if "validation" in x] if not include_validation: return [x for x in iterations if "validation" not in x] return iterations
def has_iteration(self, it_name: str) -> bool: """ See if lasif project has the iteration already :param it_name: name of iteration :type name: str :return: True if lasif has the iteration """ iterations = lapi.list_iterations(self.lasif_comm, output=True) if it_name.startswith("ITERATION_"): it_name = it_name.replace("ITERATION_", "") if isinstance(iterations, list): if it_name in iterations: return True else: return False
def lasif_list_iterations(parser, args): """ Creates directory structure for a new iteration. """ args = parser.parse_args(args) api.list_iterations(lasif_root=".", output=False)