File Processing
The parasolpy.file_processing module normalizes solution CSV files from RiverWare/Borg-style optimization workflows.
It handles single-header CSV files and two-row superheader files where top-level groups identify decision variables, objectives, or metrics.
Loading and Normalization
from parasolpy.file_processing import (
convert_solutions_csv_to_single_header,
has_superheader,
load_solutions_dataframe,
)
solutions, metadata = load_solutions_dataframe(
"NondominatedSolutions.csv",
superheader="auto",
return_metadata=True,
)
Use convert_solutions_csv_to_single_header to write a normalized CSV that is easier to inspect or pass to downstream tools.
Splitting Decisions and Objectives
from parasolpy.file_processing import split_solutions_csv, split_solutions_dataframe
These helpers separate decision-variable columns from objective columns using metadata from the superheader when available, or explicit column lists when needed.