Skip to content

Commit

Permalink
Allow users to specify ConfigProvider during startup
Browse files Browse the repository at this point in the history
  • Loading branch information
rgleaton committed Aug 29, 2024
1 parent 960037a commit 8e83de9
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/seismometer/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@

from seismometer._version import __version__
from seismometer.core.logger import add_log_formatter, set_default_logger_config
from seismometer.configuration import ConfigProvider


def run_startup(
*,
config_path: str | Path = None,
output_path: str | Path = None,
config_provider: Optional[ConfigProvider] = None,
predictions_frame: Optional[pd.DataFrame] = None,
events_frame: Optional[pd.DataFrame] = None,
definitions: Optional[dict] = None,
Expand All @@ -25,9 +27,12 @@ def run_startup(
----------
config_path : Optional[str | Path], optional
The path containing the config.yml and other resources, by default None.
Optional if configProvider is provided.
output_path : Optional[str | Path], optional
An output path to write data to, overwriting the default path specified by info_dir in config.yml,
by default None.
config_provider : Optional[ConfigProvider], optional
An optional ConfigProvider instance to use instead of loading configuration from config_path, by default None.
predictions_frame : Optional[pd.DataFrame], optional
An optional DataFrame containing the fully loaded predictions data, by default None.
By default, when not specified here, these data will be loaded based on conifguration.
Expand All @@ -44,9 +49,9 @@ def run_startup(
"""
import importlib

from seismometer.configuration import ConfigProvider
from seismometer.data.loader import loader_factory
from seismometer.seismogram import Seismogram
from seismometer.configuration import ConfigProvider

set_default_logger_config()

Expand All @@ -59,7 +64,7 @@ def run_startup(
if reset:
Seismogram.kill()

config = ConfigProvider(config_path, output_path=output_path, definitions=definitions)
config = (config_provider or ConfigProvider(config_path, output_path=output_path, definitions=definitions))
loader = loader_factory(config)
sg = Seismogram(config, loader)
sg.load_data(predictions=predictions_frame, events=events_frame)
Expand Down

0 comments on commit 8e83de9

Please sign in to comment.