From 02f14c8a2c59bf9cc35b14386d244799501671f1 Mon Sep 17 00:00:00 2001 From: Andrew Kay <64652494+andkay@users.noreply.github.com> Date: Mon, 9 Jun 2025 22:01:20 -0400 Subject: [PATCH] feat: adds pattern for settings checker using extensions --- configs/resident/settings.yaml | 2 ++ configs/resident/settings_mp.yaml | 4 ++- extensions/__init__.py | 1 + extensions/settings_checker.py | 60 +++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 extensions/settings_checker.py diff --git a/configs/resident/settings.yaml b/configs/resident/settings.yaml index e8457e0..d093a7e 100644 --- a/configs/resident/settings.yaml +++ b/configs/resident/settings.yaml @@ -154,6 +154,8 @@ distributed_time_factor_nonwork_stddev: 0.6 distributed_time_factor_min: 0.1 distributed_time_factor_max: 10 +check_model_settings: True + models: ### mp_init_proto_pop (single process) - initialize_proto_population # Separate step so proto tables can be split for multiprocess. diff --git a/configs/resident/settings_mp.yaml b/configs/resident/settings_mp.yaml index a018fdf..e69fd26 100644 --- a/configs/resident/settings_mp.yaml +++ b/configs/resident/settings_mp.yaml @@ -15,7 +15,9 @@ memory_profile: False # (Shadow pricing requires fail_fast setting in multiprocessing mode) fail_fast: True -resume_after: +resume_after: + +check_model_settings: True models: ### mp_init_proto_pop (single process) diff --git a/extensions/__init__.py b/extensions/__init__.py index f052183..5cb38e1 100644 --- a/extensions/__init__.py +++ b/extensions/__init__.py @@ -4,3 +4,4 @@ from . import transponder_ownership from . import airport_returns from . import adjust_auto_operating_cost +from . import settings_checker \ No newline at end of file diff --git a/extensions/settings_checker.py b/extensions/settings_checker.py new file mode 100644 index 0000000..788f72d --- /dev/null +++ b/extensions/settings_checker.py @@ -0,0 +1,60 @@ +from .av_ownership import AVOwnershipSettings +from .external_identification import ExternalIdentificationSettings +from .transponder_ownership import TransponderOwnershipSettings + +from activitysim.core.configuration.base import PydanticReadable +from activitysim.core.configuration.logit import ( + TourLocationComponentSettings, + TourModeComponentSettings, +) +from activitysim.core.workflow import State + + + +### SETTINGS FORMAT ### +### {"": {"settings_cls": , "settings_file": "