docs: def run_command(cmd_to_run):
      """
      Wrapper around subprocess that pipes the stderr and stdout from `cmd_to_run`
      to temporary files. Using the temporary files gets around subprocess.PIPE's
      issues with handling large buffers.
  
      Note: this command will block the python process until `cmd_to_run` has completed.
  
      Returns a tuple, containing the stderr and stdout as strings.
      """
      with tempfile.TemporaryFile() as stdout_file, tempfile.TemporaryFile() as stderr_file:
  
          # Run the command
          popen = subprocess.Popen(cmd_to_run, stdout=stdout_file, stderr=stderr_file)
          popen.wait()
  
          stderr_file.seek(0)
          stdout_file.seek(0)
  
          stderr = stderr_file.read()
          stdout = stdout_file.read()
  
          if six.PY3:
              stderr = stderr.decode()
              stdout = stdout.decode()
  
          return stderr, stdout