message_ix_models.model.buildings.config.Config

class message_ix_models.model.buildings.config.Config(sturm_scenario: str, climate_scenario: str = 'BL', clone: bool = False, code_dir: ~pathlib.Path = <factory>, data_paths: DataPaths = <factory>, max_iterations: int = 0, method: ~message_ix_models.model.buildings.config.METHOD = METHOD.A, with_materials: bool = True, _output_path: ~pathlib.Path | None = None, run_access: bool = False, solve: dict[str, ~typing.Any] = <factory>, solve_config: ~message_ix_models.model.workflow.Config = <factory>, ssp: str = 'SSP2', sturm_method: str = 'Rscript')[source]

Bases: ConfigHelper

Configuration options for buildings code.

The code responds to values set on an instance of this class.

Raises:

FileNotFoundError – if code_dir points to a non-existent directory.

__init__(sturm_scenario: str, climate_scenario: str = 'BL', clone: bool = False, code_dir: ~pathlib.Path = <factory>, data_paths: DataPaths = <factory>, max_iterations: int = 0, method: ~message_ix_models.model.buildings.config.METHOD = METHOD.A, with_materials: bool = True, _output_path: ~pathlib.Path | None = None, run_access: bool = False, solve: dict[str, ~typing.Any] = <factory>, solve_config: ~message_ix_models.model.workflow.Config = <factory>, ssp: str = 'SSP2', sturm_method: str = 'Rscript') None

Methods

__init__(sturm_scenario[, climate_scenario, ...])

from_dict(data)

Construct an instance from data with name manipulation.

hexdigest([length])

Return a hex digest that is unique for distinct settings on the instance.

read_file(path[, key])

Update configuration from file.

replace(**kwargs)

Like dataclasses.replace() with name manipulation.

set_output_path(context)

update([arg])

Update attributes in-place.

Attributes

climate_scenario

Climate scenario.

clone

True if the base scenario should be cloned.

max_iterations

Maximum number of iterations of the ACCESS–STURM–MESSAGE loop.

method

Code path to use in buildings.build.main().

run_access

Run the ACCESS model on every iteration.

ssp

sturm_method

Method for running STURM.

with_materials

True if the MESSAGEix-Materials + MESSAGEix-Buildings combination is active

sturm_scenario

Name or ID of STURM scenario to run.

code_dir

Path to the MESSAGEix-Buildings code and data.

data_paths

Paths to input data files.

solve

Keyword arguments for message_ix.Scenario.solve().

solve_config

Similar to solve, but using another config class.

climate_scenario: str = 'BL'

Climate scenario. Either BL or 2C.

clone: bool = False

True if the base scenario should be cloned.

code_dir: Path

Path to the MESSAGEix-Buildings code and data.

If not set explicitly, this is populated using _code_dir_factory().

data_paths: DataPaths

Paths to input data files.

classmethod from_dict(data: Mapping)

Construct an instance from data with name manipulation.

hexdigest(length: int = -1) str

Return a hex digest that is unique for distinct settings on the instance.

Uses dataclasses.asdict(). This means that if the names of fields defined by a subclass change—including if fields are added or removed—the result will differ. The returned value should be the same across versions of Python.

Returns:

If length is greater than 0, a string of this length; otherwise a 32-character string from blake2s.hexdigest().

Return type:

str

max_iterations: int = 0

Maximum number of iterations of the ACCESS–STURM–MESSAGE loop. Set to 1 for once-through mode.

method: METHOD = 1

Code path to use in buildings.build.main().

read_file(path: Path, key: str = '') None

Update configuration from file.

Parameters:
  • path – to a .yaml file containing a top-level mapping.

  • key – if given, read data not from the top level of the file, but from a sub- mapping under the top-level key key.

  • optional – if given, read data not from the top level of the file, but from a sub- mapping under the top-level key key.

replace(**kwargs)

Like dataclasses.replace() with name manipulation.

run_access: bool = False

Run the ACCESS model on every iteration.

solve: dict[str, Any]

Keyword arguments for message_ix.Scenario.solve(). Set model=”MESSAGE_MACRO” to solve scenarios using MESSAGE_MACRO.

solve_config: Config

Similar to solve, but using another config class.

ssp: str = 'SSP2'

Todo

Document the meaning of this setting.

sturm_method: str = 'Rscript'

Method for running STURM. See sturm.run().

sturm_scenario: str

Name or ID of STURM scenario to run.

update(arg: Mapping | None = None, **kwargs) None

Update attributes in-place.

Raises:

AttributeError – Any of the kwargs are not fields in the data class.

with_materials: bool = True

True if the MESSAGEix-Materials + MESSAGEix-Buildings combination is active