X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2common%2Fdomain%2Fbase.py;h=d7c94cda78a2c604266057e8da4fa539aee4e886;hb=f3ce354b2e6c538b50ed990ba359d3af2283c901;hp=dfd4b25ca0ba0391e9c7f557e5addbc6dea9647b;hpb=f73c8e3b01b8f5b7438ba544870e06d8f30cdea0;p=pti%2Fo2.git diff --git a/o2common/domain/base.py b/o2common/domain/base.py index dfd4b25..d7c94cd 100644 --- a/o2common/domain/base.py +++ b/o2common/domain/base.py @@ -14,13 +14,41 @@ from datetime import datetime from typing import List +from sqlalchemy.inspection import inspect +from sqlalchemy.exc import NoInspectionAvailable +# from sqlalchemy.orm.exc import DetachedInstanceError from .events import Event class AgRoot: + + events = [] + def __init__(self) -> None: self.hash = "" self.updatetime = datetime.now() self.createtime = datetime.now() self.events = [] # type: List[Event] # self.id = "" + + # def append_event(self, event: Event): + # self.events = self.events.append(event) + + +class Serializer(object): + + def serialize(self): + try: + # d = {c: getattr(self, c) for c in inspect(self).attrs.keys()} + # if 'createtime' in d: + # d['createtime'] = d['createtime'].isoformat() + # if 'updatetime' in d: + # d['updatetime'] = d['updatetime'].isoformat() + # return d + return {c: getattr(self, c) for c in inspect(self).attrs.keys()} + except NoInspectionAvailable: + return self.__dict__ + + @staticmethod + def serialize_list(li): + return [m.serialize() for m in li]