code: def run_step(self, is_shell):
          
          assert is_shell is not None, ("is_shell param must exist for CmdStep.")
  
          # why? If shell is True, it is recommended to pass args as a string
          # rather than as a sequence.
          if is_shell:
              args = self.cmd_text
          else:
              args = shlex.split(self.cmd_text)
  
          if self.is_save:
              completed_process = subprocess.run(args,
                                                 cwd=self.cwd,
                                                 shell=is_shell,
                                                 # capture_output=True,only>py3.7
                                                 stdout=subprocess.PIPE,
                                                 stderr=subprocess.PIPE,
                                                 # text=True, only>=py3.7,
                                                 universal_newlines=True)
              self.context['cmdOut'] = {
                  'returncode': completed_process.returncode,
                  'stdout': completed_process.stdout,
                  'stderr': completed_process.stderr
              }
  
              # when capture is true, output doesn't write to stdout
              self.logger.info(f"stdout: {completed_process.stdout}")
              if completed_process.stderr:
                  self.logger.error(f"stderr: {completed_process.stderr}")
  
              # don't swallow the error, because it's the Step swallow decorator
              # responsibility to decide to ignore or not.
              completed_process.check_returncode()
          else:
              # check=True throws CalledProcessError if exit code != 0
              subprocess.run(args, shell=is_shell, check=True, cwd=self.cwd)
docs: Run a command.
  
          Runs a program or executable. If is_shell is True, executes the command
          through the shell.
  
          Args:
              is_shell: bool. defaults False. Set to true to execute cmd through
                        the default shell.