Source code for piel.experimental.report.report

from piel.types import PathTypes
from piel.file_system import create_new_directory
from piel.experimental.measurements.data.extract import load_experiment_data_from_directory
from piel.experimental.report.plots import create_plots_from_experiment_data
from piel.experimental.text import write_experiment_top_markdown, append_image_path_list_to_markdown


[docs] def create_report(): """ This functionality is used to create a report of a given directory containing the `ExperimentCollection` and the `Experiments` themselves. This uses the metadata of the `Experiment`s and the corresponding `ExperimentData` to generate the corresponding images. """ pass
[docs] def create_report_from_experiment_directory( experiment_directory: PathTypes, plot_output_directory: PathTypes = None, report_readme_path: PathTypes = None, load_data_kwargs: dict = None, plot_kwargs: dict = None, **kwargs, ): """ First we need to extract the `ExperimentData` from the directory. Then we can generate the report from the `ExperimentData`. """ if plot_output_directory is None: # Create an image output directory as required plot_output_directory = experiment_directory / "img" create_new_directory(plot_output_directory) if report_readme_path is None: # Create a report README.md file main_readme_path = experiment_directory / "README.md" report_readme_path = experiment_directory / "REPORT.md" if load_data_kwargs is None: load_data_kwargs = {} if plot_kwargs is None: plot_kwargs = {} # We load the experiment data from the metadata experiment_data = load_experiment_data_from_directory( experiment_directory=experiment_directory, **load_data_kwargs ) # Now we need to generate all plots accordingly plots, plots_paths = create_plots_from_experiment_data( experiment_data=experiment_data, plot_output_directory=plot_output_directory, experiment_directory=experiment_directory, **plot_kwargs, ) # Now we need to generate the new experiment README.md # We want to append the parametric information of the experiment here. # Note that we want to append the main README with this data. write_experiment_top_markdown( experiment=experiment_data.experiment, experiment_directory=experiment_directory, target_markdown_file=main_readme_path, ) write_experiment_top_markdown( experiment=experiment_data.experiment, experiment_directory=experiment_directory, target_markdown_file=report_readme_path, ) # Now we need to append all plots to the READMEs append_image_path_list_to_markdown( image_path_list=plots_paths, markdown_file=main_readme_path ) append_image_path_list_to_markdown( image_path_list=plots_paths, markdown_file=report_readme_path ) print(f"README.md updated at: {main_readme_path}") print(f"REPORT.md written to: {report_readme_path}")