def process_action(action: ActionExecuted) -> Optional[OrderedDict]:
        """Converts a single action into an ordered dict.

        Args:
            action: Original action object.

        Returns:
            Dict with an action.
        """
        if action.action_name == rasa.shared.core.constants.RULE_SNIPPET_ACTION_NAME:
            return None

        result = CommentedMap()
        if action.action_name:
            result[KEY_ACTION] = action.action_name
        elif action.action_text:
            result[KEY_BOT_END_TO_END_MESSAGE] = action.action_text

        if hasattr(action, "inline_comment"):
            if KEY_ACTION in result:
                result.yaml_add_eol_comment(action.inline_comment(),
                                            KEY_ACTION)
            elif KEY_BOT_END_TO_END_MESSAGE in result:
                result.yaml_add_eol_comment(action.inline_comment(),
                                            KEY_BOT_END_TO_END_MESSAGE)

        return result
Beispiel #2
0
    def process_action(action: ActionExecuted) -> Optional[OrderedDict]:
        """Converts a single action into an ordered dict.

        Args:
            action: Original action object.

        Returns:
            Dict with an action.
        """
        if action.action_name == rasa.shared.core.constants.RULE_SNIPPET_ACTION_NAME:
            return None

        result = CommentedMap()
        if action.action_name:
            result[KEY_ACTION] = action.action_name
        elif action.action_text:
            result[KEY_BOT_END_TO_END_MESSAGE] = action.action_text

        if hasattr(action, "inline_comment"):
            # FIXME: to fix this type issue, WarningPredictedAction needs to
            # be imported but it's currently outside of `rasa.shared`
            comment = action.inline_comment()  # type: ignore[attr-defined]
            if KEY_ACTION in result and comment:
                result.yaml_add_eol_comment(comment, KEY_ACTION)
            elif KEY_BOT_END_TO_END_MESSAGE in result and comment:
                result.yaml_add_eol_comment(comment,
                                            KEY_BOT_END_TO_END_MESSAGE)

        return result
    def process_action(action: ActionExecuted) -> OrderedDict:
        """Converts a single action into an ordered dict.

        Args:
            action: Original action object.

        Returns:
            Dict with an action.
        """
        result = CommentedMap()
        result[KEY_ACTION] = action.action_name

        if hasattr(action, "inline_comment"):
            result.yaml_add_eol_comment(action.inline_comment(), KEY_ACTION)

        return result