def METHOD_NAME(self, data=None):
    arguments = dict(self._defaults)
    if isinstance(data, dict):
        arguments.update(data)
    # Remap specified names.
    if arguments and self._remap_data:
        for old_name, new_name in self._remap_data.items():
            if old_name in data:
                arguments[new_name] = arguments.pop(old_name)
    if self._filter_keywords:
        invalid_keywords = set(arguments.keys()) - self._valid_keywords
        for key in invalid_keywords:
            del arguments[key]
    try:
        self._function(**arguments)
    except Exception as e:
        self._log.exception("Exception from function %s:",
                            self._function.__name__)
        raise ActionError("%s: %s" % (self, e))