Source code for mesalab.io.output_manager

#mesalab/io/output_manager.py
import os
import logging

[docs] def create_output_directories(output_dir, analyze_blue_loop, should_generate_plots, should_generate_blue_loop_plots_with_bc): """ Creates all necessary output subdirectories. Args: output_dir (str): Base output directory. analyze_blue_loop (bool): Flag to determine if the 'detail_files' directory should be created. should_generate_plots (bool): Flag to determine if the general 'plots' directory should be created. should_generate_blue_loop_plots_with_bc (bool): Flag to determine if 'blue_loop_plots_bc' directory should be created. Returns: tuple: Paths to (analysis_results_sub_dir, plots_sub_dir, blue_loop_plots_bc_sub_dir, detail_files_output_dir) Example: >>> from mesalab.io import output_manager >>> output_manager.create_output_directories("output", True, True, False) ('output/analysis_results', 'output/plots', 'output/blue_loop_plots_bc', 'output/detail_files') """ analysis_results_sub_dir = os.path.join(output_dir, "analysis_results") plots_sub_dir = os.path.join(output_dir, "plots") blue_loop_plots_bc_sub_dir = os.path.join(output_dir, "blue_loop_plots_bc") detail_files_output_dir = os.path.join(output_dir, "detail_files") # Always create analysis_results as it's central to the output os.makedirs(analysis_results_sub_dir, exist_ok=True) logging.info(f"Created/ensured directory: {analysis_results_sub_dir}") if analyze_blue_loop: os.makedirs(detail_files_output_dir, exist_ok=True) logging.info(f"Created/ensured directory: {detail_files_output_dir}") if should_generate_plots: os.makedirs(plots_sub_dir, exist_ok=True) logging.info(f"Created/ensured directory: {plots_sub_dir}") if should_generate_blue_loop_plots_with_bc: os.makedirs(blue_loop_plots_bc_sub_dir, exist_ok=True) logging.info(f"Created/ensured directory: {blue_loop_plots_bc_sub_dir}") return analysis_results_sub_dir, plots_sub_dir, blue_loop_plots_bc_sub_dir, detail_files_output_dir
[docs] def get_analysis_file_paths(analysis_results_sub_dir): """ Returns the full paths for the main analysis CSV files. Args: analysis_results_sub_dir (str): Path to the analysis results subdirectory. Returns: tuple: (summary_csv_path, cross_csv_path) Example: >>> from mesalab.io import output_manager >>> output_manager.get_analysis_file_paths("output/analysis_results") ('output/analysis_results/mesa_grid_analysis_summary.csv', 'output/analysis_results/mesa_grid_cross.csv') """ summary_csv_path = os.path.join(analysis_results_sub_dir, "mesa_grid_analysis_summary.csv") cross_csv_path = os.path.join(analysis_results_sub_dir, "mesa_grid_cross.csv") return summary_csv_path, cross_csv_path