def side_effect_free(action):
 @functools.wraps(action)
 def wrapper(context, data_dict):
  return action(context, data_dict)
 wrapper.side_effect_free = True
 return wrapper

def side_effect_free ( action ) : @ functools . wraps ( action ) def wrapper ( context , data_dict ) : return action ( context , data_dict ) wrapper . side_effect_free = True return wrapper
a decorator that marks the given action function as side-effect-free .