diff --git a/ceci/pipeline.py b/ceci/pipeline.py index fe85798..f8b6c80 100644 --- a/ceci/pipeline.py +++ b/ceci/pipeline.py @@ -524,18 +524,23 @@ def data_registry_lookup(self, info): #pragma: no cover else: raise ValueError("Must specify either id or name in registry lookup") + # Whatever the lookup, we always require a dataset which has not beed deleted or replaced + status_filter = registry.Query.gen_filter("dataset.status", "==", 1) + # Main finder method - results = registry.Query.find_datasets(["dataset.dataset_id"], [filter]) + results = registry.Query.find_datasets(["dataset.dataset_id"], [filter, status_filter]) # Check that we find exactly one dataset matching the query - results = list(results) - if len(results) == 0: + if not results: raise ValueError(f"Could not find any dataset matching {info} in registry") - elif len(results) > 1: + + results = results['dataset.dataset_id'] + + if len(results) > 1: raise ValueError(f"Found multiple datasets matching {info} in registry") # Get the absolute path - return registry.Query.get_dataset_absolute_path(results[0].dataset_id) + return registry.Query.get_dataset_absolute_path(results[0]) def process_overall_inputs(self, inputs):