Skip to content

Commit e900d8c

Browse files
committed
Reduce processes in plot tasks to those present in datasets.
1 parent 2716151 commit e900d8c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

columnflow/tasks/framework/mixins.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2275,8 +2275,8 @@ def resolve_param_values_pre_init(cls, params: dict[str, Any]) -> dict[str, Any]
22752275

22762276
# helper to resolve processes and datasets for one config
22772277
def resolve(config_inst: od.Config, processes: Any, datasets: Any) -> tuple[list[str], list[str]]:
2278+
processes_orig = processes
22782279
if processes != law.no_value:
2279-
processes_orig = processes
22802280
if processes:
22812281
processes = cls.find_config_objects(
22822282
names=processes,
@@ -2315,6 +2315,13 @@ def resolve(config_inst: od.Config, processes: Any, datasets: Any) -> tuple[list
23152315
object_cls=od.Dataset,
23162316
groups_str="dataset_groups",
23172317
)
2318+
# reduce processes to those present in selected datasets when none were given initially
2319+
if datasets and processes and processes_orig in {law.no_value, ()}:
2320+
dataset_insts = list(map(config_inst.get_dataset, datasets))
2321+
processes = tuple(
2322+
process for process in processes
2323+
if any(dataset_inst.has_process(process) for dataset_inst in dataset_insts)
2324+
)
23182325
elif processes and processes != law.no_value:
23192326
# pick all datasets that contain any of the requested (sub)processes
23202327
sub_process_insts = sum((

0 commit comments

Comments
 (0)