in lib/metric-config-parser/metric_config_parser/config.py [0:0]
def validate(self, configs: "ConfigCollection", experiment: Experiment) -> None:
if isinstance(self.spec, AnalysisSpec):
analysis_spec = AnalysisSpec.default_for_experiment(experiment, configs)
analysis_spec.merge(self.spec)
resolved = analysis_spec.resolve(experiment, configs)
# private configs need to override the default dataset
if self.is_private and resolved.experiment.dataset_id is None:
raise ValueError("dataset_id needs to be explicitly set for private experiments")
elif isinstance(self.spec, MonitoringSpec):
platform = (
experiment.app_name if experiment else self.spec.project.platform
) or "firefox_desktop"
monitoring_spec = MonitoringSpec.default_for_platform_or_type(
platform,
configs,
)
if experiment and experiment.is_rollout:
if platform == "firefox_desktop":
rollout_spec = MonitoringSpec.default_for_platform_or_type("rollout", configs)
monitoring_spec.merge(rollout_spec)
monitoring_spec.merge(self.spec)
monitoring_spec.resolve(experiment, configs)