EnergySystemsModellingLab / EnergySystemsModellingLab/MUSE2

Improve error messages with custom serde deserialisation functions

Open
#1,491 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
8
Forks
5
Avg merge
1d 2m
Merged PRs (30d)
37

Description

The lack of clarity in the error output is consistent with other times this custom deserialisation is used in the code.

One thing worth noting, is that when it is used with a toml input file, the error message is quite clear. For example

```
[16:53:05 ERROR muse2] Failed to load model.

Caused by:
0: Error reading /private/var/folders/td/5nhj1569101bqjj_vmltr_7r0000gp/T/.tmpaxxQee/circularity/model.toml
1: TOML parse error at line 2, column 19
|
2 | capacity_margin = -0.3
| ^^^^
Value must be a finite number greater than or equal to zero
```

But it's less clear with CSV input files

```
[16:53:19 ERROR muse2] Failed to load model.

Caused by:
0: Error reading /private/var/folders/td/5nhj1569101bqjj_vmltr_7r0000gp/T/.tmpzLMuo8/circularity/agent_commodity_portions.csv
1: CSV deserialize error: record 11 (line: 12, byte: 246): Value must be > 0 and <= 1
```

_Originally posted by @AdrianDAlessandro in https://github.com/EnergySystemsModellingLab/MUSE2/issues/1485#issuecomment-5282971078_

Contributor guide

Open the contributing guide

Research direction

Start by locating the custom serde deserialisation functions and the CSV input-loading path, then compare their errors with the clearer TOML output shown here. Done means CSV deserialisation errors provide similarly clear context for invalid values, while preserving the existing record and line information.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.