Skip to content

Model Run Config

TOML Example (Click to Expand)
# lines marked with a *required* are REQUIRED PIECES OF METADATA
# if a header does not have *required* it is not required info, but part of its metadata can be marked as *required* to indicate that this metadata is required when the header is included

name = "model-run-1" # *required* name of model run
description = ["This is model run 1"] # description/purpose of the model run
assumptions = [""] # model specific assumptions for this run
version = "v1" # version of model code
notes = [""]

[source_code] # code associated with run
location = "https://github.com/example-model"
branch = "main"

[config]
# any info on config for model sim

[env_deps]
# any info on environment dependencies for model sim

[[datasets]] # datasets this model run is expected to output that will be handed off
  name = "dsg_rpm_2_v2.1" # ** name of dataset
  dataset_id = "load-profiles"
  description = "this is a general description about the dataset, the actual dataset description will be given in the dataset checkin" # any info about dataset
  scheduled_checkin = "2023-02-28" # estimate of when dataset will be checked in

[[handoffs]]
  id = "handoff_id1"
  description = "This is a short description of handoff_id1."
  from_model = "" # Optional get FROM PIPES
  to_model = "rpm" # *required*
  scheduled_start = ""
  scheduled_end = "2023-03-01" # *required*
  notes = ""

[[handoffs]]
  id = "handoff_id2"
    description = "This is a short description of handoff_id2."
    from_model = "" # Optional get FROM PIPES
  to_model = "dgen" # *required*
  scheduled_start = ""
  scheduled_end = "2023-05-05" # *required*
  notes = ""

[[tasks]]
  id = "check_solar"    # *required* name to refer to this task, must be unique otherwise PIPES will append integers, spaces are converted to '_'
  type = "QAQC"         # *required* type to refer to this task
  description = ""          # *required*
  inputs = ["load-profiles",]               #
  notes = [""]          # optional
  scheduled_start = ""  # optional, by default this is scheduled according to model run and handoff schedules
  scheduled_end   = ""  # optional, by default this is scheduled according to model run and handoff schedules
  assignee = "jgu2" # *required* who (assignee's username) will be responsible for performing this QAQC task.
  handoff_id = "handoff_id1" # optional, use this field if a task is associated with a handoff id. If not, this line should be deleted.

  [[tasks.acceptance_criteria]] # custom user key/value TOML pairs (possibly nested) to describe what needs to be done with qaqc, we provide some examples below
    bounds = []
    columns = [""] # columns to check
    units = "" # check that units

[[tasks]]
  id = "vis_solar"
  type = "Visualization" # *required* type to refer to this task
  description = ""
  inputs = ["",]
  notes = [""]
  scheduled_start = "" # optional, by default this is scheduled according to model run and handoff schedules
  scheduled_end   = "" # optional, by default this is scheduled according to model run and handoff schedules
  assignee = "jgu2" # *required* who (assignee's username) will be responsible for performing this visualization task.
  handoff_id = "handoff_id1"

  [[tasks.parameters]] # custom user key/value TOML pairs (possibly nested) to describe what needs to be done with vis, we provide some examples below
    type = "line"  #
    columns = []   #
    colors = []

[[tasks]]
  id = "trans_1" # *required* can be any tag, must be unique. if not unique PIPES will make unique. PIPES replaces spaces with '_'
  type = "Transformation" # *required* type to refer to this task
  description = "This is a short description of trans_1."
  key = "scenario" # *required* DO NOT MODIFY
  from_value = "scenario_1" # *required* DO NOT MODIFY
  to_value = "scenario_2" # *required* DO NOT MODIFY
  inputs = [ "",] # what handoff datasets this transformation applies to, if empty applies to all handoff datasets going to 'to_model'.
  assignee = "jgu2" # *required* who (assignee's username) will be responsible for performing this transformation.
  handoff_id = "handoff_id1"

[[tasks]]
  id = "trans_2" # *required* can be any tag, must be unique. if not unique PIPES will make unique. PIPES replaces spaces with '_'
  type = "Transformation" # *required* type to refer to this task
  description = "This is a short description of trans_2."
  key = "scenario" # *required* DO NOT MODIFY
  from_value = "scenario_3" # *required* DO NOT MODIFY
  to_value = "scenario_2" # *required* DO NOT MODIFY
  inputs = [ "",] # what handoff datasets this transformation applies to, if empty applies to all handoff datasets going to 'to_model'.
  assignee = "jgu2" # *required* who (assignee's username) will be responsible for performing this transformation.
  handoff_id = "handoff_id1"

[[tasks]]
  id = "misc-task"
  type = "QAQC"
  description = "Misc task"
  inputs = ["load-profiles",]               #
  notes = [""]          # optional
  scheduled_start = ""  # optional, by default this is scheduled according to model run and handoff schedules
  scheduled_end   = ""  # optional, by default this is scheduled according to model run and handoff schedules
  assignee = "jgu2" # *required* who (assignee's username) will be responsible for performing this QAQC task.
  handoff_id = "handoff_id2"

Schema Reference

schemas

ModelRunCreate

Model Run Schema.

Attributes:

Name Type Description
name str

Model run name.

description list[str]

The description of the model run.

version str

The version of model code.

assumptions list[str]

List of model run assumptions.

notes str

Model run notes.

source_code SourceCode | None

The source code of the model run.

config dict

Model run config.

env_deps dict

Model run environment dependencies.

datasets list[DatasetSchedule]

Output datasets for handoff.

Fields:

Validators:

assumptions

List of model run assumptions

config

Model run config

datasets

Output datasets for handoff

description

env_deps

Model run environment dependencies

name

Model run name

notes

Model run notes

source_code

The source code of the model run

version

The version of model code

SourceCode

Source Model Schema.

Attributes:

Name Type Description
location str

The location of the source code.

branch str | None

The git branch of source code.

tag str | None

The git tag of source code.

image str | None

The location of container image.

Fields:

branch

The git branch of source code

image

The location of container image

location

The location of the source code

tag

The git tag of source code

schemas

DatasetSchedule

The expected dataset output from model run.

Attributes:

Name Type Description
name str

A short dataset name.

display_name str | None

The dataset display name.

description str

The description of the scheduled dataset.

scheduled_checkin datetime | None

Scheduled checkin date in YYYY-MM-DD format.

Fields:

description

The description of the scheduled dataset

display_name

The dataset display name

name

A short dataset name

scheduled_checkin

Scheduled checkin date in YYYY-MM-DD format

schemas

SourceCode

Source Model Schema.

Attributes:

Name Type Description
location str

The location of the source code.

branch str | None

The git branch of source code.

tag str | None

The git tag of source code.

image str | None

The location of container image.

Fields:

branch

The git branch of source code

image

The location of container image

location

The location of the source code

tag

The git tag of source code

schemas

TaskCreate

Task creation schema.

Attributes:

Name Type Description
name str

Task name, must be unique to this model run.

type str

Task type, like QAQC, Transformation, or Visualization.

description str

Description of task process.

assignee UserCreate | EmailStr | None

The user who conducts this task.

status ExecutionStatus

The task status - PENDING, RUNNING, SUCCESS, or FAILURE.

subtasks list[SubTask]

List of actions under this task.

scheduled_start datetime | None

Scheduled start date.

scheduled_end datetime | None

Scheduled end date.

completion_date datetime | None

Task completion date.

source_code SourceCode | None

Scripts used to perform the task process.

input_datasets list[str]

List of datasets that the task applies to.

input_parameters dict

Non-dataset inputs, i.e. parameters in dictionary.

output_datasets list[str]

List of datasets produced from this task.

output_values dict

Non-dataset outputs, i.e. values in dictionary.

logs str

Task log location.

notes str

Notes and additional information.

Fields:

assignee

The user who conducts this task

completion_date

task completion date

description

description of task process

input_datasets

List of datasets that the task applies to.

input_parameters

Non-dataset inputs, i.e. parameters in dictionary

logs

task log location

name

task name, must be unique to this model run.

notes

notes and additional information

output_datasets

List of datasets produced from this task

output_values

non-dataset outputs, i.e. values in dictionary

scheduled_end

scheduled end date

scheduled_start

scheduled start date

source_code

Scripts used to perform the task process

status

The task status - PENDING, RUNNING, SUCCESS, or FAILURE

subtasks

List of actions under this task

type

task type, like be QAQC, Transformation, or Visualization