Project Meeting 2023.04.27 - ActivitySim/activitysim GitHub Wiki

Agenda

  • Update on Configuration Documentation & Input Checking

Meeting Notes

  • This task is different from RSG's input checking in that it checks the configuration files.
  • CS is currently working on the checking of Yaml files
    • In Yaml files, there’s a key and then a value
    • You can include anything in here. There is no warning or checking to make sure the settings are correct. If something was wrong, it would just be ignored. When you go to run activitysim, it would just appear there’s nothing there. In some cases, it would crash; in some cases, it might decide what a default value would be and proceed. Both are not good.
    • We need to make sure that what is needed is in there and it is valid. Pydantic will be used to do this.
    • Example settings validation
      • List the model steps to be included
      • Set multiprocessing as true or false, and here we set a default value as false. Can include sublevel checking – for example, there can be multiple processing settings if it is true.
      • Settings can be defined as required or optional – the example Jeff presented presents everything as optional
      • Defines how settings are set. If the yaml file doesn’t include it in the required format, it will crash in the moment that it reads in the settings.
    • Check to make sure things are specified, or will crash and report what’s incorrect/missing
  • Needs to include documentation of the settings. By formatting the settings file as presented, there is now a clear single place for documentation about what each setting does. We can wrap in an automated way that will pull the comments (documentation strings) from the code and put into the documentation website.
  • Once the top level settings checks are done (they are almost done), then we do the same things for the models.
    • Checks right now are just data types
  • Checking to see if there’s coefficients in the coefficient file – not scoped to do this or fix it. We can call out instances of this and then decide what to do about it. Component level documentation is focused on yaml file, not validating the specs files, utility function, etc. Our scoped work is limited to the yaml files.
  • Dave Ory provided the start of a data model template
  • ORCA PR is ready to be reviewed now – to WSP and RSG