123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- from contextlib import closing
- from json import dumps, loads
- class Result:
- """
- database class for results
- """
- def __init__(self, database, row):
- self.database = database
- self.identifier = row[0]
- self.file_id = row[1]
- self.origin = row[2]
- self.type = row[3]
- self.label = row[4]
- self.data = loads(row[5]) if row[5] is not None else None
- def file(self):
- """
- getter for the according file
- :return: file object
- """
- return self.database.file(self.file_id)
- def remove(self):
- """
- remove this result from the database
- :return:
- """
- with closing(self.database.con.cursor()) as cursor:
- cursor.execute('DELETE FROM results WHERE id = ?', [self.identifier])
- def set_origin(self, origin: str):
- """
- set this results origin
- :param origin: either 'user' or 'pipeline'
- :return:
- """
- with closing(self.database.con.cursor()) as cursor:
- cursor.execute('UPDATE results SET origin = ? WHERE id = ?', (origin, self.identifier))
- self.origin = origin
- def set_label(self, label: int):
- """
- set this results label
- :param label: label id
- :return:
- """
- with closing(self.database.con.cursor()) as cursor:
- cursor.execute('UPDATE results SET label = ? WHERE id = ?', (label, self.identifier))
- self.label = label
- def set_data(self, data: dict):
- """
- set this results data object
- :param data: data object
- :return:
- """
- if data is None:
- data_txt = None
- else:
- data_txt = dumps(data)
- with closing(self.database.con.cursor()) as cursor:
- cursor.execute('UPDATE results SET data = ? WHERE id = ?', (data_txt, self.identifier))
- self.data = data
|