Skip to content

Commit

Permalink
use enum for x_approximate_distribution
Browse files Browse the repository at this point in the history
  • Loading branch information
Bento007 committed Nov 16, 2022
1 parent e7c830f commit 9cf6bec
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
14 changes: 7 additions & 7 deletions server/common/config/config_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import os
import sys
import warnings
from enum import Enum
from typing import List, Optional, Union, Dict
from urllib.parse import quote_plus

Expand Down Expand Up @@ -228,18 +229,17 @@ class Diffexp(BaseModel):
count: int = 15


class XApproximateDistributionEnum(str, Enum):
normal = "normal"
count = "count"


class DefaultDataset(BaseModel):
app: DatasetApp
presentation: Presentation
embeddings: Embeddings
diffexp: Diffexp
X_approximate_distribution: str

@validator("X_approximate_distribution")
def check_x_approximate_distribution(cls, value):
if value not in ["normal", "count"]:
raise ValueError("X_approximate_distribution has unknown value -- must be 'normal' or 'count'.")
return value
X_approximate_distribution: XApproximateDistributionEnum = Field(default=XApproximateDistributionEnum.normal)


class AppConfigModel(BaseModel):
Expand Down
2 changes: 0 additions & 2 deletions server/dataset/cxg_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,8 +191,6 @@ def _validate_and_initialize(self):

if cxg_version not in ["0.0", "0.1", "0.2.0", "0.3.0"]:
raise DatasetAccessError(f"cxg matrix is not valid: {self.url}")
if self.app_config.default_dataset__X_approximate_distribution == "auto":
raise ConfigurationError("X-approximate-distribution 'auto' mode unsupported.")
self.X_approximate_distribution = self.app_config.default_dataset__X_approximate_distribution

self.title = title
Expand Down
10 changes: 10 additions & 0 deletions server/tests/unit/common/config/test_dataset_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,13 @@ def test_configfile_with_specialization(self):

# test config from specialization
self.assertEqual(app_config.server__multi_dataset__dataroots["test"]["base_url"], "test")

def test_X_approximate_distribution(self):
with self.subTest("OK"):
self.app_config.update_default_dataset_config(X_approximate_distribution="count")

tests = ["auto", "bad"]
for test in tests:
with self.subTest(test):
with self.assertRaises(ConfigurationError):
self.app_config.update_default_dataset_config(X_approximate_distribution=test)

0 comments on commit 9cf6bec

Please sign in to comment.