@classmethod
    def get_tag_list_with_attrs(cls):
        """Returns a dict of HTML tag names and attributes for RTE components.

        The keys are tag names starting with 'oppia-noninteractive-', followed
        by the hyphenated version of the name of the RTE component. The values
        are lists of allowed attributes of the form
        [PARAM_NAME]-with-[CUSTOMIZATION_ARG_NAME].
        """
        # TODO(sll): Cache this computation and update it on each refresh.
        # Better still, bring this into the build process so it doesn't have
        # to be manually computed each time.
        component_list = cls.get_all_rte_components()

        component_tags = {}
        for component in component_list:
            tag_name = 'oppia-noninteractive-%s' % (
                utils.camelcase_to_hyphenated(component.id))

            component_tags[tag_name] = [
                '%s-with-value' % ca_spec.name
                for ca_spec in component.customization_arg_specs]

        return component_tags
dataset/ETHPy150Open oppia/oppia/core/domain/rte_component_registry.py/Registry.get_tag_list_with_attrs/original