Router
- class gpype.backend.flow.router.Router(input_selector=None, output_selector=None, **kwargs)[source]
Bases:
IONodeChannel routing and selection node for flexible data flow management.
Provides channel selection and routing capabilities for BCI data pipelines. Allows selecting specific channels from multiple input ports and routing them to multiple output ports. Supports both simple channel selection (index lists) and complex multi-port routing (dictionary mapping).
- ALL: list = [-1]
- class Configuration(input_ports=None, output_ports=None, **kwargs)[source]
Bases:
ConfigurationConfiguration class for Router parameters.
- __init__(input_selector=None, output_selector=None, **kwargs)[source]
Initialize the Router node with channel selection configurations.
- Parameters:
input_selector (
Union[list,dict]) – Specification for input channel selection. Can be None (all channels), list (channel indices), or dict (port name to channel indices mapping).output_selector (
Union[list,dict]) – Specification for output channel selection. Same format as input_selector.**kwargs – Additional configuration parameters passed to IONode.
- Raises:
ValueError – If input_selector or output_selector is empty.
- setup(data, port_context_in)[source]
Set up the Router node and build the internal channel mapping.
Creates the internal routing map that defines which input channels are connected to which output channels. Validates that all input ports have compatible sampling rates, frame sizes, and data types.
- Parameters:
- Return type:
- Returns:
Output port context with routing information and updated channel counts for each output port.
- Raises:
ValueError – If input ports have incompatible parameters.
- step(data)[source]
Process one frame of data by routing channels according to mapping.
Routes channels from input ports to output ports based on the channel mapping established during setup. Each output port receives data from its configured subset of input channels.
- Parameters:
data (
dict[str,ndarray]) – Dictionary containing input data arrays for each port. Keys are port names, values are arrays with shape (frame_size, channel_count).- Return type:
- Returns:
Dictionary containing output data arrays for each output port. Keys are output port names, values are arrays with shape (frame_size, selected_channel_count).