Fixed details attribute
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Pünkösd Marcell 2020-10-01 22:48:00 +02:00
parent 0755d8453e
commit 7650ae2369
3 changed files with 24 additions and 1 deletions

View File

@ -1,18 +1,31 @@
#!/usr/bin/env python3
from typing import Optional
from marshmallow import fields
from marshmallow_sqlalchemy import ModelSchema
from marshmallow_enum import EnumField
from model import AIModel, AIModelType
from .svmdetails_schema import SVMDetailsSchema
class AIModelSchema(ModelSchema):
_svm_details_schema = SVMDetailsSchema(many=False, exclude=["aimodel"])
default = fields.Method("boolize_default", dump_only=True)
details = fields.Method("pluck_details", dump_only=True)
type = EnumField(AIModelType)
def boolize_default(self, ai_model) -> bool:
return bool(ai_model.default)
def pluck_details(self, ai_model) -> Optional[dict]:
if ai_model.details:
return self._svm_details_schema.dump(ai_model.details[0])
else:
return None
class Meta:
model = AIModel

View File

@ -0,0 +1,10 @@
#!/usr/bin/env python3
from marshmallow import fields
from marshmallow_sqlalchemy import ModelSchema
from model import SVMDetails
class SVMDetailsSchema(ModelSchema):
class Meta:
model = SVMDetails