Files
stand/tableapi.py
2022-05-27 19:52:30 +02:00

52 lines
1.0 KiB
Python

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("output.h5")
self.sid = None
self.changed = True
@property
def data(self):
self.changed = False
return self.dfh.df
@data.setter
def data(self, df):
if self.dfh.df.equals(df):
print("<<< skipping dump because dataframe did not change")
return
self.dfh.df = df
self.dfh.dump()
def GET(self):
return str(self.dfh.df)
@cp.tools.json_in()
def PATCH(self, **kwargs):
kwargs = kwargs or cp.request.json
self.dfh.append(kwargs)
self._trigger_changed()
self.dfh.dump()
return str(self.dfh.df)
def DELETE(self):
self.dfh.clear()
self._trigger_changed()
return "cleared"
def _trigger_changed(self):
self.changed = True
rerun(self.sid)