Skip to content

Commit cecb570

Browse files
authored
Sharrow Cache Dir Setting (#893)
* setting necessary filesystem changes from settings file * set for multiprocessing
1 parent ecb00b5 commit cecb570

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

activitysim/core/configuration/filesystem.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,18 @@ def _parse_arg(name, x):
134134

135135
return self
136136

137+
def parse_settings(self, settings):
138+
def _parse_setting(name, x):
139+
v = getattr(settings, x, None)
140+
if v is not None:
141+
setattr(self, name, v)
142+
143+
_parse_setting("cache_dir", "cache_dir")
144+
_parse_setting("sharrow_cache_dir", "sharrow_cache_dir")
145+
_parse_setting("profile_dir", "profile_dir")
146+
_parse_setting("pipeline_file_name", "pipeline_file_name")
147+
return
148+
137149
def get_working_subdir(self, subdir) -> Path:
138150
if self.working_dir:
139151
return self.working_dir.joinpath(subdir)

activitysim/core/mp_tasks.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,7 @@ def setup_injectables_and_logging(injectables, locutor: bool = True) -> workflow
887887
state = workflow.State()
888888
state = state.initialize_filesystem(**injectables)
889889
state.settings = injectables.get("settings", Settings())
890+
state.filesystem.parse_settings(state.settings)
890891

891892
# register abm steps and other abm-specific injectables
892893
# by default, assume we are running activitysim.abm

activitysim/core/workflow/state.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -478,15 +478,12 @@ def load_settings(self) -> State:
478478
include_stack=False,
479479
)
480480

481-
# the settings can redefine the cache directories.
482-
cache_dir = raw_settings.pop("cache_dir", None)
483-
if cache_dir:
484-
if self.filesystem.cache_dir != cache_dir:
485-
logger.warning(f"settings file changes cache_dir to {cache_dir}")
486-
self.filesystem.cache_dir = cache_dir
487481
settings_class = self.__class__.settings.member_type
488482
self.settings: Settings = settings_class.model_validate(raw_settings)
489483

484+
# need to parse any filesystem settings set in the settings file itself
485+
self.filesystem.parse_settings(self.settings)
486+
490487
extra_settings = set(self.settings.__dict__) - set(settings_class.__fields__)
491488

492489
if extra_settings:

0 commit comments

Comments
 (0)