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

@ -5,7 +5,7 @@ from sqlalchemy.dialects.postgresql import UUID
class SVMDetails(db.Model):
aimodel_id = db.Column(UUID(as_uuid=True), db.ForeignKey("ai_model.id"), nullable=False, primary_key=True)
aimodel = db.relationship("AIModel", backref=db.backref("details", lazy=True, cascade="save-update, merge, delete, delete-orphan"))
aimodel = db.relationship("AIModel", backref=db.backref("details", lazy=True, cascade="save-update, merge, delete, delete-orphan"))
# details
mid_window = db.Column(db.Float)

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