code: def next(self):
          
  
          if self._stopped_iteration:
              raise StopIteration()
  
          # we do this because if get blocks, we can't catch a KeyboardInterrupt
          # so the slight timeout allows for that.
          while True:
              try:
                  chunk = self.process._pipe_queue.get(True, 0.001)
              except Empty:
                  if self.call_args["iter_noblock"]:
                      return errno.EWOULDBLOCK
              else:
                  if chunk is None:
                      self.wait()
                      self._stopped_iteration = True
                      raise StopIteration()
                  try:
                      return chunk.decode(self.call_args["encoding"],
                          self.call_args["decode_errors"])
                  except UnicodeDecodeError:
                      return chunk
docs: allow us to iterate over the output of our command