Source code for caspia.node.pollen_action

# pylint: disable=protected-access


[docs]def action(builder): def decorator(func): func.__pollen_action_builder = builder return func return decorator
[docs]def request(builder): def decorator(func): def wrapped_builder(*args, **kwargs): address, data = builder(*args, **kwargs) return 'request', address, data return action(wrapped_builder)(func) return decorator
[docs]def broadcast(builder): def decorator(func): def wrapped_builder(*args, **kwargs): address, data = builder(*args, **kwargs) return 'broadcast', address, data return action(wrapped_builder)(func) return decorator
[docs]def build(func, *args, **kwargs): builder = func.__pollen_action_builder if isinstance(builder, (bytes, bytearray)): return builder else: return builder(*args, **kwargs)