docs: def read(self, n):
          """
          Read *n* bytes from the subprocess' output channel.
  
          Args:
              n(int): The number of bytes to read.
  
          Returns:
              bytes: *n* bytes of output.
  
          Raises:
              EOFError: If the process exited.
          """
  
          d = b''
          while n:
              try:
                  block = self._process.stdout.read(n)
              except ValueError:
                  block = None
              if not block:
                  self._process.poll()
                  raise EOFError('Process ended')
              d += block
              n -= len(block)
          return d