Hi all,
I’m using the Python Extension Development API. I want to set up a node with input_table_group to support an arbitrary number of input tables together with a ColumnParameter ParameterArray to select one column from each input table.
It seems like this is not yet implemented. Or is there any way to do this?
My current MWE where I tried to implement this:
@knext.parameter_group(label="Column Selection")
class ColSelections:
colsel: knext.ColumnParameter = knext.ColumnParameter(
label="Cols",
description="Select cols",
default_value=None,
)
@knext.node(
name="Cf Node",
node_type=knext.NodeType.MANIPULATOR,
icon_path="icons/daly_elephant_small-64-64.png",
category=mtu_base_category,
)
@knext.input_table_group(
name="Tables to Concatenate",
description="Tables to concatenate to base table",
)
@knext.output_table(
name="Output Table", description="Something"
)
class CfNode:
"""Do something."""
col_selection: knext.ParameterArray = knext.ParameterArray(
label="Column Selections",
description="Select the columns.",
parameters=ColSelections(),
array_title="Selections",
)
def configure(
self,
configure_context: knext.ConfigurationContext,
input_schemas: list[knext.Schema],
) -> knext.Schema:
for pa, schema in zip(self.col_selection, input_schemas):
pa.colsel.apply(schema)
return input_schemas[0]
def execute(
self,
exec_context: knext.ExecutionContext,
input_tables: list[knext.Table],
) -> knext.Table:
return input_tables[0]
I also tried implementing this in many different ways, but it seems like Knime does not yet support this?
Any help is appreciated.
Thanks in advance and best regards,
Johannes