12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import typing as T
- from contextlib import closing
- from json import dumps, loads
- from pycs import db
- from pycs.database.base import BaseModel
- class Result(BaseModel):
- file_id = db.Column(
- db.Integer,
- db.ForeignKey("file.id", ondelete="CASCADE"),
- nullable=False)
- origin = db.Column(db.String, nullable=False)
- type = db.Column(db.String, nullable=False)
- label_id = db.Column(
- db.Integer,
- db.ForeignKey("label.id", ondelete="SET NULL"),
- nullable=True)
- data = db.Column(db.String)
- def set_origin(self, origin: str):
- """
- set this results origin
- :param origin: either 'user' or 'pipeline'
- :return:
- """
- self.origin = origin
- self.commit()
- def set_label(self, label: int):
- """
- set this results origin
- :param label: label ID
- :return:
- """
- self.label_id = label
- self.commit()
- def set_data(self, data: T.Optional[dict]):
- """
- set this results data object
- :param data: data object
- :return:
- """
- data = data if data is None else json.dumps(data)
- self.data = data
- self.commit()
|