Helper method to structure initial message context data.

        NOTE: updates `base_context` inplace.

        :param dict base_context: context dict to update
        :param dict, str str_or_dict: text representing a message, or a dict to be placed into message context.
        :param str template_path: template path to be used for message rendering

def update_context(cls, base_context, str_or_dict, template_path=None):
        """Helper method to structure initial message context data.

        NOTE: updates `base_context` inplace.

        :param dict base_context: context dict to update
        :param dict, str str_or_dict: text representing a message, or a dict to be placed into message context.
        :param str template_path: template path to be used for message rendering
        """
        if isinstance(str_or_dict, dict):
            base_context.update(str_or_dict)
            base_context['use_tpl'] = True
        else:
            base_context[cls.SIMPLE_TEXT_ID] = str_or_dict

        if cls.SIMPLE_TEXT_ID in str_or_dict:
            base_context['use_tpl'] = False

        base_context['tpl'] = template_path