tinkerbell/web_python/ray/web.py
2020-12-04 18:01:27 -08:00

40 lines
1.1 KiB
Python

from js import XMLHttpRequest, Blob
import json
import base64
import cloudpickle
def get(get_id):
enc = base64.standard_b64encode(get_id).decode()
body = json.dumps({"id": enc})
req = XMLHttpRequest.new()
req.open("POST", "/api/get", False)
blob = Blob.new([body], {type: 'application/json'})
req.send(blob)
out = json.loads(req.response)
return out
def put(obj):
data = cloudpickle.dumps(obj)
enc = base64.standard_b64encode(data).decode()
body = json.dumps({"data": enc})
req = XMLHttpRequest.new()
req.open("POST", "/api/put", False)
blob = Blob.new([body], {type: 'application/json'})
req.send(blob)
out = json.loads(req.response)
out_id = base64.standard_b64decode(out["id"])
return out_id
def schedule(task):
body = json.dumps(task)
req = XMLHttpRequest.new()
req.open("POST", "/api/schedule", False)
blob = Blob.new([body], {type: 'application/json'})
req.send(blob)
out = json.loads(req.response)
out_id = base64.standard_b64decode(out["return_id"])
return out_id