import cherrypy as cp from utils.df_utils import DateFrameHolder from utils.st_utils import rerun @cp.expose class TableAPI: def __init__(self): self.dfh = DateFrameHolder() self.sid = None self.changed = True @property def data(self): self.changed = False return self.dfh.df @data.setter def data(self, df): self.dfh.df = df @cp.tools.json_in() def PATCH(self, **kwargs): kwargs = kwargs or cp.request.json self.dfh.append(kwargs) self.changed = True rerun(self.sid) return str(self.dfh.df) def GET(self): return str(self.dfh.df) def DELETE(self): self.dfh.clear() self.changed = True rerun(self.sid) return "cleared"