def f(*args): connection = make_client_connection(server=None) postBody = connection.dump_request(data=(shared_name, args)) response, t = direct_call(self.server, postBody, connection.server) isError, answer = connection.load_response(response) if isError: raise NimbleException.load(answer) return answer, t, postBody
@returns: decorated function @errors: PermissionDenied """ @functools.wraps(func) def f(self, connection, *args, **kwargs): try: return func(self, connection, *args, **kwargs) except NimbleException, ex: traceback.print_exc() return connection.ERROR(ex.dump()) except Exception, ex: traceback.print_exc() return connection.ERROR(ServerError(ex).dump()) except: traceback.print_exc() return connection.ERROR(NimbleException.dump_unhandled()) return f def shared(func): setattr(func, SHARED_AS_PROPERTY, func.__name__) return process_exceptions(func) def shared_as(alias): def decorator(func): setattr(func, SHARED_AS_PROPERTY, alias) return process_exceptions(func) return decorator def get_shared(server_instance): predicate = lambda m: inspect.ismethod(m) and hasattr(m, SHARED_AS_PROPERTY) shared = inspect.getmembers(server_instance, predicate)
def __init__(self, connection, message): if connection is None and message is None: value = None else: value = '%s: %s'%(object_type_string(connection), message) NimbleException.__init__(self, value)