<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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
    )