docs: def run_project(
          project_directory: str,
          output_directory: str = None,
          logging_path: str = None,
          reader_path: str = None,
          reload_project_libraries: bool = False,
          **kwargs
  ) -> ExecutionResult:
      """
      Runs a project as a single command directly within the current Python
      interpreter.
  
      :param project_directory:
          The fully-qualified path to the directory where the Cauldron project is
          located
      :param output_directory:
          The fully-qualified path to the directory where the results will be
          written. All of the results files will be written within this
          directory. If the directory does not exist, it will be created.
      :param logging_path:
          The fully-qualified path to a file that will be used for logging. If a
          directory is specified instead of a file, a file will be created using
          the default filename of cauldron_run.log. If a file already exists at
          that location it will be removed and a new file created in its place.
      :param reader_path:
          Specifies a path where a reader file will be saved after the project
          has finished running. If no path is specified, no reader file will be
          saved. If the path is a directory, a reader file will be saved in that
          directory with the project name as the file name.
      :param reload_project_libraries:
          Whether or not to reload all project libraries prior to execution of
          the project. By default this is False, but can be enabled in cases
          where refreshing the project libraries before execution is needed.
      :param kwargs:
          Any variables to be available in the cauldron.shared object during
          execution of the project can be specified here as keyword arguments.
      :return:
          A response object that contains information about the run process
          and the shared data from the final state of the project.
      """
      from cauldron.cli import batcher
      return batcher.run_project(
          project_directory=project_directory,
          output_directory=output_directory,
          log_path=logging_path,
          reader_path=reader_path,
          reload_project_libraries=reload_project_libraries,
          shared_data=kwargs
      )