def _load_outcomes()

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