code: def _run_nb_cmd(self, cmd):
          '''
          cmd iterator
          '''
          try:
              proc = salt.utils.nb_popen.NonBlockingPopen(
                  cmd,
                  shell=True,
                  stderr=subprocess.PIPE,
                  stdout=subprocess.PIPE,
              )
              while True:
                  time.sleep(0.1)
                  out = proc.recv()
                  err = proc.recv_err()
                  rcode = proc.returncode
                  if out is None and err is None:
                      break
                  if err:
                      err = self.get_error(err)
                  yield out, err, rcode
          except Exception:
              yield ('', 'Unknown Error', Nonef _run_nb_cmd(self, cmd):
          '''
          cmd iterator
          '''
          try:
              proc = salt.utils.nb_popen.NonBlockingPopen(
                  cmd,
                  shell=True,
                  stderr=subprocess.PIPE,
                  stdout=subprocess.PIPE,
              )
              while True:
                  time.sleep(0.1)
                  out = proc.recv()
                  err = proc.recv_err()
                  rcode = proc.returncode
                  if out is None and err is None:
                      break
                  if err:
                      err = self.get_error(err)
                  yield out, err, rcode
          except Exception:
              yield ('', 'Unknown Error', None)
docs: cmd iterator