Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -558,6 +558,15 @@ def _validate_distinct_output_processors(
config_builder: DataDesignerConfigBuilder,
output_processors: list[ProcessorConfig],
) -> None:
seen: set[str] = set()
duplicate_within: set[str] = set()
for processor in output_processors:
if processor.name in seen:
duplicate_within.add(processor.name)
seen.add(processor.name)
if duplicate_within:
names = ", ".join(sorted(duplicate_within))
raise DataDesignerWorkflowError(f"Output processor names must be distinct within output_processors: {names}.")
stage_processor_names = {processor.name for processor in config_builder.get_processor_configs()}
duplicate_names = stage_processor_names.intersection(processor.name for processor in output_processors)
if duplicate_names:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,27 @@ def test_composite_workflow_rejects_duplicate_output_processor_names(
)


def test_composite_workflow_rejects_duplicate_names_within_output_processors(
stub_artifact_path: Path,
stub_model_providers: list[ModelProvider],
stub_model_configs: list[ModelConfig],
) -> None:
stage = _category_builder(stub_model_configs)
workflow = _data_designer(stub_artifact_path, stub_model_providers).compose_workflow(
name="duplicate-within-output-processors"
)

with pytest.raises(DataDesignerWorkflowError, match="distinct within output_processors"):
workflow.add_stage(
"base",
stage,
output_processors=[
DropColumnsProcessorConfig(name="drop_scratch", column_names=["scratch"]),
DropColumnsProcessorConfig(name="drop_scratch", column_names=["other_scratch"]),
],
)


def test_composite_workflow_rejects_duplicate_stage_names(
stub_artifact_path: Path,
stub_model_providers: list[ModelProvider],
Expand Down
Loading