|
- import requests
- import abp, json
-
- class ClientError(Exception):
- def __init__(self, message):
- self.message = message
-
- class Client(object):
- def __init__(self, host="localhost", port=5000, clear=False):
- self.session = requests.Session()
- self.root = "http://{}:{}".format(host, port)
- if clear:
- self.clear()
-
- def get(self, endpoint):
- url =self.root+endpoint
- response = self.session.get(url)
- if response.status_code == 404:
- message = "404. Check that the server is running!".format(self.root, endpoint)
- raise ClientError(message)
- return response.content
-
- def get_state(self):
- response = self.get("/state")
- output = abp.GraphState()
- output.from_json(json.loads(response))
- return output
-
- def set_state(self, state):
- response = self.session.post(self.root+"/state", data=state.to_json())
- if not response.status_code == 200:
- print response.status_code
- return response.content
-
- def add_node(self, node):
- return self.get("/add_node/{}".format(node))
-
- def act_local_rotation(self, node, operation):
- return self.get("/act_local_rotation/{}/{}".format(node, operation))
-
- def act_cz(self, a, b):
- return self.get("/act_cz/{}/{}".format(a, b))
-
- def clear(self):
- return self.get("/clear")
-
- def kill(self):
- self.session.close()
|