\r
from datetime import datetime\r
from typing import List\r
+from sqlalchemy.inspection import inspect\r
+from sqlalchemy.exc import NoInspectionAvailable\r
+# from sqlalchemy.orm.exc import DetachedInstanceError\r
from .events import Event\r
\r
\r
class AgRoot:\r
+\r
+ events = []\r
+\r
def __init__(self) -> None:\r
self.hash = ""\r
- # self.id = ""\r
self.updatetime = datetime.now()\r
self.createtime = datetime.now()\r
self.events = [] # type: List[Event]\r
+ # self.id = ""\r
+\r
+ # def append_event(self, event: Event):\r
+ # self.events = self.events.append(event)\r
+\r
+\r
+class Serializer(object):\r
+\r
+ def serialize(self):\r
+ try:\r
+ # d = {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
+ # if 'createtime' in d:\r
+ # d['createtime'] = d['createtime'].isoformat()\r
+ # if 'updatetime' in d:\r
+ # d['updatetime'] = d['updatetime'].isoformat()\r
+ # return d\r
+ return {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
+ except NoInspectionAvailable:\r
+ return self.__dict__\r
+\r
+ @staticmethod\r
+ def serialize_list(li):\r
+ return [m.serialize() for m in li]\r