def capture_output_from_running_process(context: RunContext) -> None:
    """
    Parses output from a running sub-process

    Decodes and filters the process output line by line, buffering it

    If "mute" is False, sends the output back in real time

    :param context: run context
    :type context: _RunContext
    """
    # Get the raw output one line at a time
    _output = context.capture.readline(block=False)

    if _output:

        line = decode_and_filter(_output, context)

        if line:
            if not context.mute:

                # Print in real time
                _LOGGER_PROCESS.debug(line)

            # Buffer the line
            context.process_output_chunks.append(line)

        # Get additional output if any
        return capture_output_from_running_process(context)

    return None
Parses output from a running sub-process

    Decodes and filters the process output line by line, buffering it

    If "mute" is False, sends the output back in real time

    :param context: run context
    :type context: _RunContext