code: def pipe_data_received(self, fd: int, data: bytes) -> None:
      for line in data.decode().splitlines():
          self.send_result((fd, line))
  
imports: from __future__ import annotations
  import random
  import threading
  import time
  from threading import Thread
  from datalad.tests.utils_pytest import assert_raises
  from ..coreprotocols import StdOutCapture
  from ..nonasyncrunner import ThreadedRunner
  from ..protocol import GeneratorMixIn, WitlessProtocol
  from .utils import py2cmd
label_desc: Use image node_id 2 for calling the MinimalStdOutGeneratorProtocol obj's underlying member method code with example usage: obj.pipe_data_received(fd, data) without return types