From acf590df05a6da6b65e645086c54c665b5935df5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Soleck=C3=BD?= Date: Wed, 15 Jun 2022 12:06:43 +0200 Subject: [PATCH 1/2] add parameter for outlier detection algorithm --- src/epstats/server/req.py | 2 ++ src/epstats/toolkit/experiment.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/epstats/server/req.py b/src/epstats/server/req.py index fd411d7..3be42ab 100644 --- a/src/epstats/server/req.py +++ b/src/epstats/server/req.py @@ -261,6 +261,8 @@ class Experiment(BaseModel): title="Filtering conditions", description="""List of filtering conditions to apply on exposure and goals.""" ) + outlier_detection_algorithm: Optional[str] = Field(title="Outlier detection algorithm") + @validator("id") def id_must_be_not_empty(cls, value): if not value: diff --git a/src/epstats/toolkit/experiment.py b/src/epstats/toolkit/experiment.py index 5730c9d..e0f7400 100644 --- a/src/epstats/toolkit/experiment.py +++ b/src/epstats/toolkit/experiment.py @@ -135,6 +135,7 @@ def __init__( variants: List[str] = None, statsd: StatsClient = StatsClient(), filters: List[Filter] = None, + outlier_detection_algorithm: str = None, ): self._logger = logging.getLogger(f"{__name__}.{self.__class__.__name__}") self.id = id @@ -166,6 +167,7 @@ def __init__( self._update_dimension_to_value() self.statsd = statsd self.filters = filters if filters is not None else [] + self.outlier_detection_algorithm = outlier_detection_algorithm def _update_dimension_to_value(self): """ From ecfe721e05bb0a617f857f6de1112c0b0e00210e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Soleck=C3=BD?= Date: Wed, 15 Jun 2022 14:00:50 +0200 Subject: [PATCH 2/2] add new outlier parameter to function to_experiment --- src/epstats/server/req.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/epstats/server/req.py b/src/epstats/server/req.py index 3be42ab..9da265e 100644 --- a/src/epstats/server/req.py +++ b/src/epstats/server/req.py @@ -339,6 +339,7 @@ def to_experiment(self, statsd: StatsClient): variants=self.variants, statsd=statsd, filters=[f.to_filter() for f in self.filters] if self.filters else [], + outlier_detection_algorithm=self.outlier_detection_algorithm, ) class Config: