Skip to content

Commit b6dac8e

Browse files
docs(abtests): Added documentation for featureFilters configuration i… (generated)
algolia/api-clients-automation#5688 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Samy Kettani <[email protected]>
1 parent 2c4c12c commit b6dac8e

File tree

4 files changed

+97
-0
lines changed

4 files changed

+97
-0
lines changed

algoliasearch/abtesting/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from .estimate_ab_test_request import EstimateABTestRequest
2424
from .estimate_ab_test_response import EstimateABTestResponse
2525
from .estimate_configuration import EstimateConfiguration
26+
from .feature_filters import FeatureFilters
2627
from .filter_effects import FilterEffects
2728
from .list_ab_tests_response import ListABTestsResponse
2829
from .minimum_detectable_effect import MinimumDetectableEffect
@@ -47,6 +48,7 @@
4748
"EstimateABTestRequest",
4849
"EstimateABTestResponse",
4950
"EstimateConfiguration",
51+
"FeatureFilters",
5052
"FilterEffects",
5153
"ListABTestsResponse",
5254
"MinimumDetectableEffect",

algoliasearch/abtesting/models/ab_test_configuration.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919

2020

2121
from algoliasearch.abtesting.models.empty_search import EmptySearch
22+
from algoliasearch.abtesting.models.feature_filters import FeatureFilters
2223
from algoliasearch.abtesting.models.minimum_detectable_effect import (
2324
MinimumDetectableEffect,
2425
)
2526
from algoliasearch.abtesting.models.outliers import Outliers
2627

2728
_ALIASES = {
29+
"feature_filters": "featureFilters",
2830
"outliers": "outliers",
2931
"empty_search": "emptySearch",
3032
"minimum_detectable_effect": "minimumDetectableEffect",
@@ -40,6 +42,7 @@ class ABTestConfiguration(BaseModel):
4042
A/B test configuration.
4143
"""
4244

45+
feature_filters: Optional[FeatureFilters] = None
4346
outliers: Optional[Outliers] = None
4447
empty_search: Optional[EmptySearch] = None
4548
minimum_detectable_effect: Optional[MinimumDetectableEffect] = None
@@ -79,6 +82,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
7982
if not isinstance(obj, dict):
8083
return cls.model_validate(obj)
8184

85+
obj["featureFilters"] = (
86+
FeatureFilters.from_dict(obj["featureFilters"])
87+
if obj.get("featureFilters") is not None
88+
else None
89+
)
8290
obj["outliers"] = (
8391
Outliers.from_dict(obj["outliers"])
8492
if obj.get("outliers") is not None

algoliasearch/abtesting/models/estimate_configuration.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919

2020

2121
from algoliasearch.abtesting.models.empty_search import EmptySearch
22+
from algoliasearch.abtesting.models.feature_filters import FeatureFilters
2223
from algoliasearch.abtesting.models.minimum_detectable_effect import (
2324
MinimumDetectableEffect,
2425
)
2526
from algoliasearch.abtesting.models.outliers import Outliers
2627

2728
_ALIASES = {
29+
"feature_filters": "featureFilters",
2830
"outliers": "outliers",
2931
"empty_search": "emptySearch",
3032
"minimum_detectable_effect": "minimumDetectableEffect",
@@ -40,6 +42,7 @@ class EstimateConfiguration(BaseModel):
4042
A/B test configuration for estimating the sample size and duration using minimum detectable effect.
4143
"""
4244

45+
feature_filters: Optional[FeatureFilters] = None
4346
outliers: Optional[Outliers] = None
4447
empty_search: Optional[EmptySearch] = None
4548
minimum_detectable_effect: MinimumDetectableEffect
@@ -79,6 +82,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
7982
if not isinstance(obj, dict):
8083
return cls.model_validate(obj)
8184

85+
obj["featureFilters"] = (
86+
FeatureFilters.from_dict(obj["featureFilters"])
87+
if obj.get("featureFilters") is not None
88+
else None
89+
)
8290
obj["outliers"] = (
8391
Outliers.from_dict(obj["outliers"])
8492
if obj.get("outliers") is not None
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# coding: utf-8
2+
3+
"""
4+
Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
5+
"""
6+
7+
from __future__ import annotations
8+
9+
from json import loads
10+
from sys import version_info
11+
from typing import Any, Dict, Optional
12+
13+
from pydantic import BaseModel, ConfigDict
14+
15+
if version_info >= (3, 11):
16+
from typing import Self
17+
else:
18+
from typing_extensions import Self
19+
20+
21+
_ALIASES = {
22+
"dynamic_re_ranking": "dynamicReRanking",
23+
"ai_perso": "aiPerso",
24+
"multi_signal_ranking": "multiSignalRanking",
25+
}
26+
27+
28+
def _alias_generator(name: str) -> str:
29+
return _ALIASES.get(name, name)
30+
31+
32+
class FeatureFilters(BaseModel):
33+
"""
34+
Configuration of feature-based filters applied to the A/B test population.
35+
"""
36+
37+
dynamic_re_ranking: Optional[bool] = None
38+
""" Whether to apply Dynamic Re-Ranking feature filters. """
39+
ai_perso: Optional[bool] = None
40+
""" Whether to apply AI Personalization feature filters. """
41+
multi_signal_ranking: Optional[bool] = None
42+
""" Whether to apply Multi-Signal Re-Ranking feature filters. """
43+
44+
model_config = ConfigDict(
45+
strict=False,
46+
use_enum_values=True,
47+
populate_by_name=True,
48+
validate_assignment=True,
49+
protected_namespaces=(),
50+
alias_generator=_alias_generator,
51+
extra="allow",
52+
)
53+
54+
def to_json(self) -> str:
55+
return self.model_dump_json(by_alias=True, exclude_unset=True)
56+
57+
@classmethod
58+
def from_json(cls, json_str: str) -> Optional[Self]:
59+
"""Create an instance of FeatureFilters from a JSON string"""
60+
return cls.from_dict(loads(json_str))
61+
62+
def to_dict(self) -> Dict[str, Any]:
63+
"""Return the dictionary representation of the model using alias."""
64+
return self.model_dump(
65+
by_alias=True,
66+
exclude_none=True,
67+
exclude_unset=True,
68+
)
69+
70+
@classmethod
71+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
72+
"""Create an instance of FeatureFilters from a dict"""
73+
if obj is None:
74+
return None
75+
76+
if not isinstance(obj, dict):
77+
return cls.model_validate(obj)
78+
79+
return cls.model_validate(obj)

0 commit comments

Comments
 (0)