Expand description
§cobre-io
Case directory loading, validation, and result writing for the Cobre power systems ecosystem.
This crate provides two top-level entry points:
load_case— reads a case directory and produces a fully-validatedcobre_core::Systemready for use by the solver.write_results— accepts aggregate result types and writes all output artifacts to a specified root directory.
§Loading pipeline
load_case executes a six-layer validation pipeline:
- Structural validation — checks that required files exist on disk and records
which optional files are present (
validation::structural). - Schema validation — verifies required fields, types, and value ranges.
- Referential integrity — checks all entity ID cross-references are resolvable.
- Dimensional consistency — cross-file coverage checks (e.g., inflow params cover all hydros).
- Semantic validation — domain business rules (acyclic cascade, penalty ordering, PAR stationarity, etc.).
- Cross-file resolution and cross-validation — multi-file consistency checks that span the parsed data assembled by earlier layers (productivity source conflict detection, scalar-parameter hydro-ID existence, per-stage length checks).
All validation diagnostics are collected by validation::ValidationContext before
failing, so users see every problem in a single report. Final errors are reported
via LoadError, which carries enough context for diagnostic messages without
re-reading input files.
§Status
This crate is in early development. The API will change.
See the repository for the current status.
Re-exports§
pub use broadcast::BroadcastComputedParameter;pub use broadcast::BroadcastParameterKind;pub use broadcast::BroadcastScalarParameter;pub use broadcast::deserialize_parameters;pub use broadcast::deserialize_system;pub use broadcast::serialize_parameters;pub use broadcast::serialize_system;pub use config::BoundaryPolicy;pub use config::Config;pub use config::EstimationConfig;pub use config::OrderSelectionMethod;pub use config::PolicyMode;pub use config::parse_config;pub use constraints::BusPenaltyOverrideRow;pub use constraints::ContractBoundsRow;pub use constraints::GenericConstraintBoundsRow;pub use constraints::HydroBoundsRow;pub use constraints::HydroPenaltyOverrideRow;pub use constraints::LineBoundsRow;pub use constraints::LineBusPairIndex;pub use constraints::LinePenaltyOverrideRow;pub use constraints::NcsPenaltyOverrideRow;pub use constraints::PumpingBoundsRow;pub use constraints::ThermalBoundsRow;pub use constraints::build_line_bus_pair_index;pub use constraints::load_contract_bounds;pub use constraints::load_generic_constraint_bounds;pub use constraints::load_generic_constraints;pub use constraints::load_hydro_bounds;pub use constraints::load_line_bounds;pub use constraints::load_penalty_overrides_bus;pub use constraints::load_penalty_overrides_hydro;pub use constraints::load_penalty_overrides_line;pub use constraints::load_penalty_overrides_ncs;pub use constraints::load_pumping_bounds;pub use constraints::load_thermal_bounds;pub use constraints::parse_contract_bounds;pub use constraints::parse_generic_constraint_bounds;pub use constraints::parse_generic_constraints;pub use constraints::parse_hydro_bounds;pub use constraints::parse_line_bounds;pub use constraints::parse_penalty_overrides_bus;pub use constraints::parse_penalty_overrides_hydro;pub use constraints::parse_penalty_overrides_line;pub use constraints::parse_penalty_overrides_ncs;pub use constraints::parse_pumping_bounds;pub use constraints::parse_thermal_bounds;pub use error::LoadError;pub use extensions::EvaporationModelRow;pub use extensions::FittingWindow;pub use extensions::FphaColumnLayout;pub use extensions::FphaDeviationPointRow;pub use extensions::FphaHyperplaneRow;pub use extensions::HydroEnergyProductivityRow;pub use extensions::HydroGeometryRow;pub use extensions::HydroReferenceVolumeFractions;pub use extensions::PlaneReductionConfig;pub use extensions::ProductionModelConfig;pub use extensions::ProductionModelFile;pub use extensions::SeasonConfig;pub use extensions::SelectionMode;pub use extensions::StageRange;pub use extensions::build_hydro_reference_volumes_resolved;pub use extensions::load_fpha_hyperplanes;pub use extensions::load_hydro_energy_productivity;pub use extensions::load_hydro_geometry;pub use extensions::load_production_models;pub use extensions::load_scalar_parameters_json;pub use extensions::parse_evaporation_models;pub use extensions::parse_fpha_deviation_points;pub use extensions::parse_fpha_hyperplanes;pub use extensions::parse_hydro_energy_productivity;pub use extensions::parse_hydro_geometry;pub use extensions::parse_production_models;pub use extensions::parse_scalar_parameters_json;pub use initial_conditions::parse_initial_conditions;pub use output::policy::codec::deserialize_checkpoint_manifest;pub use output::policy::codec::serialize_checkpoint_manifest;pub use output::policy::records::CheckpointManifest;pub use output::policy::ENTITY_SLOT_DELIVERY_DATE_SENTINEL;pub use output::policy::EntitySlot;pub use output::policy::FORMAT_VERSION;pub use output::policy::GraphManifest;pub use output::policy::ManifestEdge;pub use output::policy::ManifestNode;pub use output::policy::OwnedPolicyBasisRecord;pub use output::policy::OwnedPolicyCutRecord;pub use output::policy::PolicyBasisRecord;pub use output::policy::PolicyCheckpoint;pub use output::policy::PolicyCutRecord;pub use output::policy::ProducerBlock;pub use output::policy::STAGE_CUTS_GRAPH_STAGE_ID_SENTINEL;pub use output::policy::STAGE_CUTS_NODE_ID_SENTINEL;pub use output::policy::STAGE_STATES_NODE_ID_SENTINEL;pub use output::policy::StageCutsPayload;pub use output::policy::StageCutsReadResult;pub use output::policy::StageStatesPayload;pub use output::policy::StageStatesReadResult;pub use output::policy::StateFamily;pub use output::policy::deserialize_stage_basis;pub use output::policy::deserialize_stage_cuts;pub use output::policy::deserialize_stage_states;pub use output::policy::read_policy_checkpoint;pub use output::policy::serialize_stage_basis;pub use output::policy::serialize_stage_cuts;pub use output::policy::serialize_stage_states;pub use output::policy::write_policy_checkpoint;pub use output::ConvergenceSummary;pub use output::DeviationSummary;pub use output::DeviationWorstEntry;pub use output::DistributionInfo;pub use output::FixedDeliveryRow;pub use output::GenericConstraintEchoRow;pub use output::HostLayout;pub use output::IterationRecord;pub use output::MetadataBounds;pub use output::MetadataConfiguration;pub use output::MetadataConvergence;pub use output::MetadataCost;pub use output::MetadataIterations;pub use output::MetadataProblemDimensions;pub use output::MetadataRowPool;pub use output::MetadataScenarios;pub use output::MetadataSimulationSolveStats;pub use output::MetadataTrainingSolveStats;pub use output::OutputContext;pub use output::OutputError;pub use output::ParquetWriterConfig;pub use output::RowPoolStatistics;pub use output::RowSelectionRecord;pub use output::SetupTimings;pub use output::SimulationMetadata;pub use output::SimulationOutput;pub use output::SolverStatsRow;pub use output::TrainingMetadata;pub use output::TrainingOutput;pub use output::TrainingParquetWriter;pub use output::WorkerTimingRecord;pub use output::get_hostname;pub use output::now_iso8601;pub use output::read_convergence_summary;pub use output::read_hydro_model_summary;pub use output::read_provenance_report;pub use output::read_simulation_metadata;pub use output::read_training_metadata;pub use output::write_dictionaries;pub use output::write_evaporation_models;pub use output::write_fixed_delivery;pub use output::write_fpha_deviation_points;pub use output::write_fpha_hyperplanes;pub use output::write_generic_constraint_echo;pub use output::write_hydro_model_summary;pub use output::write_provenance_report;pub use output::write_results;pub use output::write_row_selection_records;pub use output::write_scaling_report;pub use output::write_simulation_metadata;pub use output::write_simulation_results;pub use output::write_simulation_solver_stats;pub use output::write_solver_stats;pub use output::write_training_metadata;pub use output::write_training_results;pub use penalties::parse_penalties;pub use post_study_stages::parse_post_study_stages;pub use report::ReportEntry;pub use report::ValidationReport;pub use report::generate_report;pub use resolution::resolve_bounds;pub use resolution::resolve_penalties;pub use scenarios::BlockFactor;pub use scenarios::InflowArCoefficientRow;pub use scenarios::InflowSeasonalStatsRow;pub use scenarios::LoadFactorEntry;pub use scenarios::LoadSeasonalStatsRow;pub use scenarios::NoiseOpeningRow;pub use scenarios::ScenarioData;pub use scenarios::assemble_inflow_models;pub use scenarios::assemble_load_models;pub use scenarios::load_correlation;pub use scenarios::load_external_inflow_scenarios;pub use scenarios::load_external_load_scenarios;pub use scenarios::load_external_ncs_scenarios;pub use scenarios::load_inflow_ar_coefficients;pub use scenarios::load_inflow_history;pub use scenarios::load_inflow_seasonal_stats;pub use scenarios::load_load_factors;pub use scenarios::load_load_seasonal_stats;pub use scenarios::load_noise_openings;pub use scenarios::load_scenarios;pub use scenarios::parse_correlation;pub use scenarios::parse_external_inflow_scenarios;pub use scenarios::parse_external_load_scenarios;pub use scenarios::parse_external_ncs_scenarios;pub use scenarios::parse_inflow_ar_coefficients;pub use scenarios::parse_inflow_history;pub use scenarios::parse_inflow_seasonal_stats;pub use scenarios::parse_load_factors;pub use scenarios::parse_load_seasonal_stats;pub use stage_resolve::StageIdResolver;pub use stages::StagesData;pub use stages::build_season_stage_map;pub use stages::parse_stages;pub use system::load_energy_contracts;pub use system::load_non_controllable_sources;pub use system::load_pumping_stations;pub use system::parse_buses;pub use system::parse_energy_contracts;pub use system::parse_hydros;pub use system::parse_lines;pub use system::parse_non_controllable_sources;pub use system::parse_pumping_stations;pub use system::parse_thermals;pub use validation::scalar_parameters::validate_scalar_parameters;pub use validation::semantic::seed_lag_state_depth;pub use validation::structural::FileManifest;pub use validation::structural::validate_structure;pub use validation::ErrorKind;pub use validation::Severity;pub use validation::ValidationContext;pub use validation::ValidationEntry;
Modules§
- broadcast
- Postcard serialization helpers for MPI broadcast of
SystemandScalarParametercollections. - config
- Configuration types for
config.json. - constraints
- Parsers for constraint files in the
constraints/subdirectory. - error
- Error types for the
cobre-ioloading pipeline. - extensions
- Parsers for extension data files in the
system/subdirectory. - initial_
conditions - Parsing for
initial_conditions.json— initial system state. - output
- Output writers for simulation results and policy files.
- penalties
- Parsing for
penalties.json— global penalty defaults. - post_
study_ stages - Parsing for
post_study_stages.json— the post-horizon boundary calendar and per-(thermal, post-study stage)cost/bounds table. - report
- Structured validation report for programmatic consumption.
- resolution
- Resolution functions that apply the penalty and bound cascades.
- scenarios
- Parsers for scenario data files in the
scenarios/subdirectory. - stage_
resolve - The single owner of the
stage_iddomain-id reading. - stages
- Parsing for
stages.json— temporal structure and policy graph. - system
- Entity registry parsers for the
system/subdirectory. - validation
- Validation infrastructure for the cobre-io loading pipeline.
Structs§
- Case
Artifacts - Auxiliary rows produced by the load pipeline alongside
System. - External
Load Row - A single row from
scenarios/external_load_scenarios.parquet. - External
NcsRow - A single row from
scenarios/external_ncs_scenarios.parquet. - External
Scenario Row - A single row from
scenarios/external_inflow_scenarios.parquet. - Inflow
History Row - A single row from
scenarios/inflow_history.parquet. - Loaded
Case - Fully-loaded case bundle: the validated
Systemplus the auxiliary row sets that downstream consumers need without re-reading the case directory.
Functions§
- load_
case - Load a case directory and return a fully-validated
System. - load_
case_ with_ artifacts - Load a case directory and return the validated
Systemtogether with theCaseArtifactsbundle of pre-parsed auxiliary rows. - validate_
case - Load a case directory and return both the fully-validated
Systemand aValidationReportcontaining all warnings collected during the pipeline. - validate_
case_ with_ artifacts - Load a case directory and return the validated
LoadedCasetogether with aValidationReportcontaining all warnings collected during the pipeline.