9.1. TOML primerΒΆ
The full specification for TOML files can be found here. A TOML file is separated into sections, with each section except the topmost introduced by a name in square brackets. Sections can hold key-value pairs, e.g. a name associated with a value. For instance:
general_string_attribute = "x"
[some_section]
section_attribute = 12
[some_section.subsection]
subsetion_attribute = true
TOML is quite flexible in how one can define sections and attributes. The following three examples are equivalent:
[sectors.residential.production]
name = "match"
costing = "prices"
[sectors.residential]
production = {"name": "match", "costing": "prices"}
[sectors.residential]
production.name = "match"
production.costing = "prices"
Additionally, TOML files can contain tabular data, specified row-by-row using double square bracket. For instance, below we define a table with two rows and a single column called some_table_of_data (though column is not quite the right term, TOML tables are made more flexible than most tabular formats. Rather, each row can be considered a dictionary).
[[some_table_of_data]]
a_key = "a value"
[[some_table_of_data]]
a_key = "another value"
As MUSE requires a number of data file, paths to files can be formatted in a flexible manner. Paths can be formatted with shorthands for specific directories and are defined with curly-brackets. For example:
projection = '{path}/inputs/projection.csv'
timeslices_path = '{cwd}/technodata/timeslices.csv'
consumption_path = '{muse_sectors}/technodata/timeslices.csv'
- path
refers to the directory where the TOML file is located
- cwd
refers to the directory from which the muse simulation is launched
- muse_sectors
refers to the directory where default sectoral data is located