def call(self, func, *args, **kwargs): # Add the current session kwargs["session"] = self.session path = "/" + func + "/" + "/".join(dumps(x) for x in args) data = dict((k, dumps(v)) for k, v in kwargs.iteritems()) rep = self.request(path, data) return loads(rep)
def call(self, func, *args, **kwargs): if not self.ws: raise Exception("Not Connected") if kwargs: self.ws.send(dumps([func, args, kwargs])) else: # omit kwargs self.ws.send(dumps([func, args])) code, result = loads(self.ws.recv()) if code == 404: raise AttributeError("Unknown Method") elif code == 500: raise Exception("Remote Exception: %s" % result) elif code == UNAUTHORIZED: raise Unauthorized() elif code == FORBIDDEN: raise Forbidden() return result