MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / create

Method create

api/experimentation/serializers.py:325–345  ·  view source on GitHub ↗
(self, validated_data: dict[str, Any])

Source from the content-addressed store, hash-verified

323 )
324
325 def create(self, validated_data: dict[str, Any]) -> Experiment:
326 metrics: list[dict[str, Any]] = validated_data.pop("metrics", [])
327 rollout: dict[str, Any] | None = validated_data.pop("experiment_rollout", None)
328 with transaction.atomic():
329 experiment: Experiment = super().create(validated_data)
330 ExperimentMetric.objects.bulk_create(
331 ExperimentMetric(
332 experiment=experiment,
333 metric=entry["metric"],
334 expected_direction=entry["expected_direction"],
335 )
336 for entry in metrics
337 )
338 if rollout is not None:
339 apply_experiment_rollout(
340 experiment,
341 ExperimentRolloutSerializer.to_spec(
342 rollout, self.context["request"]
343 ),
344 )
345 return experiment
346
347
348class ExperimentFeatureSerializer(serializers.ModelSerializer): # type: ignore[type-arg]

Callers 1

createMethod · 0.45

Calls 4

ExperimentMetricClass · 0.90
apply_experiment_rolloutFunction · 0.90
bulk_createMethod · 0.80
to_specMethod · 0.80

Tested by

no test coverage detected