IONode

class gpype.backend.core.io_node.IONode[source]

Bases: IONode, Node

Abstract base class for input/output nodes in the g.Pype pipeline.

Combines ioiocore.IONode and Node functionality for signal processing nodes with input and output ports. Handles validation and setup logic for port contexts. Subclasses must implement the abstract step() method.

__init__(input_ports=None, output_ports=None, **kwargs)[source]

Initialize the IONode with input and output port configurations.

Parameters:
  • input_ports (list[Configuration]) – List of input port configurations or None.

  • output_ports (list[Configuration]) – List of output port configurations or None.

  • **kwargs – Additional arguments passed to parent classes.

setup(data, port_context_in)[source]

Setup the node before processing begins.

Validates input port configurations and creates output port contexts. Checks for consistent sampling rates, compatible channel counts, matching frame sizes, and compatible types.

Parameters:
  • data (dict[str, ndarray]) – Dictionary mapping port names to numpy arrays.

  • port_context_in (dict[str, dict]) – Dictionary mapping input port names to contexts.

Return type:

dict[str, dict]

Returns:

Dictionary mapping output port names to context dictionaries.

Raises:

ValueError – If validation fails for any configuration parameter.

abstractmethod step(data)[source]

Process data at each discrete time step.

Abstract method that must be implemented by subclasses to define their specific signal processing behavior.

Parameters:

data (dict[str, ndarray]) – Dictionary mapping input port names to numpy arrays.

Return type:

dict[str, ndarray]

Returns:

Dictionary mapping output port names to numpy arrays. May return None if no output is produced.