in experimenter/experimenter/outcomes/__init__.py [0:0]
def _load_outcomes(cls):
outcomes: list[Outcome] = []
app_name_application_config = {
a.app_name: a for a in NimbusConstants.APPLICATION_CONFIGS.values()
}
for app_name in settings.METRIC_HUB_OUTCOMES_PATH.iterdir():
app_path = settings.METRIC_HUB_OUTCOMES_PATH / app_name
for outcome_name in app_path.iterdir():
if outcome_name.suffix != ".example":
outcome_path = app_path / outcome_name
with outcome_path.open() as outcome_file:
outcome_toml = outcome_file.read()
outcome_data = toml.loads(outcome_toml)
metrics = []
if "metrics" in outcome_data:
metrics = [
Metric(
slug=metric,
friendly_name=outcome_data["metrics"][metric].get(
"friendly_name"
),
description=outcome_data["metrics"][metric].get(
"description"
),
)
for metric in outcome_data["metrics"]
]
outcomes.append(
Outcome(
application=app_name_application_config[
app_name.stem
].slug,
description=outcome_data["description"],
friendly_name=outcome_data["friendly_name"],
slug=outcome_name.stem,
is_default=False,
metrics=metrics,
)
)
return outcomes