OSeMOSYS / otoole

OSeMOSYS Tools for Energy
https://otoole.readthedocs.io
MIT License
23 stars 17 forks source link

[Bug]: config validation cannot deal with ResultPath #226

Open willu47 opened 2 months ago

willu47 commented 2 months ago

The Issue

There are two related bugs to do with ResultsPath.

  1. If ResultsPath is not specified in the config.yaml file, but listed in the datafile, the validation does not provide the correct error.
  2. If the ResultsPath is specified in the config.yaml file, the type of the parameter (string) is not handled correctly by the validation.

Expected Behavior

  1. The validation code should identify that ResultsPath is not listed (amply returns an error)
  2. The validation code should handle parameters with a string type

Steps To Reproduce

  1. a. Add ResultsPath := ./a/path/to/results to datafile called file_with_resultspath.txt b. Run otoole convert datafile datafile file_with_resultspath.txt test.txt config.yaml

  2. a. Add entry to config.yaml file for ResultsPath

    ResultsPath:
      indices: []
      type: param
      dtype: str
      default: results

    b. Add ResultsPath := ./a/path/to/results to datafile called file_with_resultspath.txt c. Run otoole convert datafile datafile file_with_resultspath.txt test.txt config.yaml

Log output

ParseException: Expected end of text, found 'p'  (at char 2069), (line:23, col:1)  (at char 0), (line:1, col:1)

Operating System

MacOS

What version of otoole are you running?

1.1.2

Possible Solution

No response

Anything else?

No response

trevorb1 commented 2 months ago

This can supersede issue #103. That issue describes adding ResultsPath to the now deprecated datapackage, but notes a similar issue in trying to use ResultsPath