1234567891011121314151617181920212223242526272829303132333435363738 |
- import json
- from pycs import db
- from pycs.database.base import NamedBaseModel
- from pycs.database.util import commit_on_return
- class Model(NamedBaseModel):
- """
- database class for ML Models
- """
- description = db.Column(db.String)
- root_folder = db.Column(db.String, nullable=False, unique=True)
- supports_encoded = db.Column(db.String, nullable=False)
- # relationships to other models
- projects = db.relationship("Project", backref="model", lazy=True)
- @property
- def supports(self):
- return json.loads(self.supports_encoded)
- @commit_on_return
- def copy_to(self, new_name: str, new_root_folder: str):
- model = Model.query.get(root_folder=new_root_folder)
- is_new = False
- if model is None:
- model = Model.new(root_folder=new_root_folder)
- is_new = True
- model.name = name
- model.description = self.description
- model.supports_encoded = self.supports_encoded
- return model, is_new
|