Pipeline Module — sudio documentation

# Pipeline Module

class sudio.pipeline.Pipeline(max_size=0, io_buffer_size=10, on_busy=PipelineOnBusyType.BLOCK, list_dispatch=False)

  Bases: `Thread`

  Pipeline class for audio processing.

  Raises:

    - ValueError – If an unsupported value is provided for ‘on_busy’.

    - BufferError – If the pipeline is empty during a delay operation.

    - ConnectionError – If the pipeline is not started during a delay operation.

  Initializes the Pipeline instance with the specified parameters.

  Parameters:

    - max_size (int) – Maximum size of the pipeline.

    - io_buffer_size (int) – Size of the I/O buffer.

    - on_busy (Union[float, PipelineOnBusyType]) – Action to take when the pipeline is busy. DROP or BLOCK, float for timeout

    - list_dispatch (bool) – Flag indicating whether to use list dispatch mode.

  clear()

    Clears the input and output queues of the pipeline.

    Parameters:

      None

    Returns:

      None

  run()

    The main execution loop of the pipeline. Handles dispatching to either _run_dispatched or _run_norm based on the pipeline mode (list dispatch or normal).

    Parameters:

      None

    Returns:

      None

  refresh()

    Refreshes the pipeline, handling initialization, appending, inserting, and other operations.

    Parameters:

      None

    Returns:

      None

  insert(index, *func, args=(), init=())

    Inserts functions into the pipeline at the specified index.

    Parameters:

      - index (int) – The index at which to insert the functions.

      - *func (callable) – The functions to insert.

      - args (Union[list, tuple, object]) – Arguments to be passed to the functions.

      - init (Union[list, tuple, callable]) – Initialization functions or arguments.

    Returns:

      The modified pipeline instance.

    Return type:

      Pipeline

  append(*func, args=(), init=())

    Appends functions to the end of the pipeline.

    Parameters:

      - *func (callable) – The functions to append.

      - args (Union[list, tuple, object]) – Arguments to be passed to the functions.

      - init (Union[list, tuple, callable]) – Initialization functions or arguments.

    Returns:

      The modified pipeline instance.

    Return type:

      Pipeline

  sync(barrier)

    Sets a synchronization barrier for the pipeline.

    Parameters:

      barrier (threading.Barrier) – The synchronization barrier.

    Returns:

      None

  aasync()

    Disables synchronization for the pipeline.

    Parameters:

      None

    Returns:

      None

  delay()

    Delays the pipeline and returns the execution time.

    Parameters:

      None

    Returns:

      The execution time in seconds.

    Return type:

      float

  set_timeout(t)

    Sets the timeout value for blocking operations.

    Parameters:

      t (Union[float, int]) – The timeout value in seconds.

    Returns:

      None

  get_timeout()

    Retrieves the current timeout value.

    Parameters:

      None

    Returns:

      The current timeout value in seconds.

    Return type:

      Union[float, int]

  index(func)

    Returns the index of the first occurrence of the specified function in the pipeline.

    Parameters:

      func (callable) – The function to search for in the pipeline.

    Returns:

      The index of the function if found, -1 otherwise.

    Return type:

      int

    Raises:

      ValueError – If the function is not found in the pipeline.

  update_args(func_or_index, *new_args)

    Updates the arguments of a function in the pipeline.

    Parameters:

      - func_or_index (Union[callable, int]) – The function or its index in the pipeline.

      - *new_args – The new arguments to be used for the function.

    Returns:

      None

    Raises:

      - ValueError – If the function is not found in the pipeline.

      - IndexError – If the provided index is out of range.