Source code for container_collection.manifest.find_missing_conditions

import pandas as pd


[docs]def find_missing_conditions( manifest: pd.DataFrame, name: str, conditions: list[dict], seeds: list[int], extensions: list[str], ) -> list[dict]: """ Find simulations missing or incomplete from list of conditions. Parameters ---------- manifest Manifest of all files for simulation series. name Name of the simulation series. conditions List of series condition dictionaries (must include unique condition "key"). seeds List of series random seeds. extensions List of single simulation output extensions. Returns ------- : List of missing conditions, including random seed. """ missing_conditions = [] for condition in conditions: all_keys = {f"{name}_{condition['key']}_{seed:04}": seed for seed in seeds} manifest_keys = manifest[manifest["KEY"].isin(all_keys.keys())] missing_keys = set(all_keys) - set(manifest_keys["KEY"].unique()) incomplete_keys = set( manifest_keys.groupby("KEY").filter( lambda x: len(set(extensions) - set(x["EXTENSION"])) != 0 )["KEY"] ) for key in list(missing_keys) + list(incomplete_keys): missing_condition = condition.copy() missing_condition["seed"] = all_keys[key] missing_conditions.append(missing_condition) return missing_conditions