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

Class ExperimentRolloutSerializer

api/experimentation/serializers.py:220–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

218
219
220class ExperimentRolloutSerializer(serializers.Serializer): # type: ignore[type-arg]
221 enabled = serializers.BooleanField(required=True)
222 rollout_percentage = serializers.FloatField(
223 required=True, min_value=0, max_value=100
224 )
225 feature_state_value = FeatureValueSerializer(required=True)
226 multivariate_feature_state_values = MultivariateValueSerializer(
227 many=True, required=False
228 )
229
230 @staticmethod
231 def to_spec(data: dict[str, Any], request: Any) -> RolloutSpec:
232 value = data["feature_state_value"]
233 return RolloutSpec(
234 enabled=data["enabled"],
235 rollout_percentage=data["rollout_percentage"],
236 feature_state_value=value["value"],
237 value_type=value["type"],
238 multivariate_values=[
239 MultivariateValueChangeSet(
240 multivariate_feature_option_id=mv["multivariate_feature_option"],
241 percentage_allocation=mv["percentage_allocation"],
242 )
243 for mv in data.get("multivariate_feature_state_values", [])
244 ],
245 author=AuthorData.from_request(request),
246 )
247
248
249class ExperimentSerializer(serializers.ModelSerializer): # type: ignore[type-arg]

Callers 2

rolloutMethod · 0.90

Calls 2

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…