def _log(self, key, data, dtype, options: LogOptions = None): if self.local_server: self.local_server.log(key, data, dtype, options) else: # todo: make the json serialization more robust. Not priority b/c this' client-side. json = LogEntry(key, serialize(data), dtype, options)._asdict() self.session.post(self.url, json=json)
def ping(self, exp_key, status, burn=True): status_path = os.path.join(exp_key, '__presence') self.log(status_path, dict(status=status, time=datetime.now()), dtype="yaml", options=LogOptions(overwrite=True, write_mode='key')) signal_path = os.path.join(exp_key, '__signal.pkl') res = self.load(signal_path, 'read_pkl') if burn: self.remove(signal_path) return serialize(res)
def read_handler(self, req): if not req.json: msg = f'request json is empty: {req.text}' print(msg) return req.Response(text=msg) load_entry = LoadEntry(**req.json) print("loading: {} type: {}".format(load_entry.key, load_entry.type)) res = self.load(load_entry.key, load_entry.type) data = serialize(res) return req.Response(text=data)
async def read_handler(self, req): import sanic if not req.json: msg = f'request json is empty: {req.text}' print(msg) return sanic.response.text(msg) load_entry = LoadEntry(**req.json) print("loading: {} type: {}".format(load_entry.key, load_entry.type)) res = self.load(load_entry.key, load_entry.type, load_entry.start, load_entry.stop) data = serialize(res) return sanic.response.text(data)