Skip to content

Commit c1816e9

Browse files
committed
Reduce the size of score set control variant responses.
1 parent 958d48b commit c1816e9

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/mavedb/view_models/clinical_control.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class Config:
3939

4040

4141
class SavedClinicalControlWithMappedVariants(SavedClinicalControl):
42-
mapped_variants: Sequence["SavedMappedVariant"]
42+
mapped_variants: Sequence["MappedVariantForClinicalControl"]
4343

4444

4545
# Properties to return to non-admin clients
@@ -48,7 +48,7 @@ class ClinicalControl(SavedClinicalControl):
4848

4949

5050
class ClinicalControlWithMappedVariants(SavedClinicalControlWithMappedVariants):
51-
mapped_variants: Sequence["MappedVariant"]
51+
pass
5252

5353

5454
class ClinicalControlOptions(BaseModel):
@@ -57,7 +57,7 @@ class ClinicalControlOptions(BaseModel):
5757

5858

5959
# ruff: noqa: E402
60-
from mavedb.view_models.mapped_variant import MappedVariant, SavedMappedVariant, MappedVariantCreate
60+
from mavedb.view_models.mapped_variant import MappedVariantCreate, MappedVariantForClinicalControl
6161

6262
# ClinicalControlUpdate.model_rebuild()
6363
SavedClinicalControlWithMappedVariants.model_rebuild()

src/mavedb/view_models/mapped_variant.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,22 @@ class MappedVariantWithControls(SavedMappedVariantWithControls):
8080
gnomad_variants: Sequence["GnomADVariant"]
8181

8282

83+
class MappedVariantForClinicalControl(BaseModel):
84+
variant_urn: str
85+
86+
class Config:
87+
from_attributes = True
88+
89+
@model_validator(mode="before")
90+
def generate_score_set_urn_list(cls, data: Any):
91+
if not hasattr(data, "variant_urn") and hasattr(data, "variant"):
92+
try:
93+
data.__setattr__("variant_urn", None if not data.variant else data.variant.urn)
94+
except AttributeError as exc:
95+
raise ValidationError(f"Unable to create {cls.__name__} without attribute: {exc}.") # type: ignore
96+
return data
97+
98+
8399
# ruff: noqa: E402
84100
from mavedb.view_models.clinical_control import ClinicalControlBase, ClinicalControl, SavedClinicalControl
85101
from mavedb.view_models.gnomad_variant import GnomADVariantBase, GnomADVariant, SavedGnomADVariant

0 commit comments

Comments
 (0)