minigrida/minigrida/database/design.py

47 lines
1.1 KiB
Python

#!/usr/bin/env python
# file design.py
# author Florent Guiotte <florent.guiotte@irisa.fr>
# version 0.0
# date 22 mai 2020
"""Abstract
doc.
"""
from datetime import date
from pony import orm
db = orm.Database()
class Experiment(db.Entity):
sessions = orm.Set('Session')
urgency = orm.Required(int, default=1)
status = orm.Required(str, default='pending')
protocol = orm.Required(str)
expe = orm.Required(orm.Json)
expe_hash = orm.Required(str, 32, unique=True)
start_date = orm.Optional(date)
end_date = orm.Optional(date)
worker = orm.Optional(str)
ressources = orm.Optional(orm.Json)
report = orm.Optional(orm.Json)
oa = orm.Optional(float)
aa = orm.Optional(float)
k = orm.Optional(float)
class Session(db.Entity):
project = orm.Required('Project')
date = orm.Required(date)
name = orm.PrimaryKey(str)
desc = orm.Optional(str)
urgency = orm.Required(int, default=1)
experiments = orm.Set('Experiment')
class Project(db.Entity):
name = orm.PrimaryKey(str)
sessions = orm.Set('Session')