def activity(config: dict) -> Any:
validated_config = CONFIG_SCHEMA.validate(config)
validated_config.update({k: v for k, v in config.items() if k not in validated_config})
if not validated_config.get("schema"):
validated_config["schema"] = None
def decorator(func: Callable) -> Any:
@functools.wraps(func)
def wrapper(self: Any, params: dict) -> Any:
return func(self, **_build_kwargs(func, params))
setattr(wrapper, "name", validated_config.get("name", func.__name__))
setattr(wrapper, "config", validated_config)
setattr(wrapper, "is_activity", True)
return wrapper
return decorator