code: def communicate(self, input=None):
          
          stdoutdata, stderrdata = self.process.communicate(input=input)
          self._returncode = self.process.returncode
          self.set_status(self.S_DONE, "status set to Done")
  
          return stdoutdata, stderrdata
docs: Interact with process: Send data to stdin. Read data from stdout and stderr, until end-of-file is reached.
          Wait for process to terminate. The optional input argument should be a string to be sent to the
          child process, or None, if no data should be sent to the child.
  
          communicate() returns a tuple (stdoutdata, stderrdata).