def __init__()

in smdebug_rulesconfig/profiler_rules/rules.py [0:0]


    def __init__(self, opt_out_telemetry=False, **rule_parameters):
        """
        This rule will create a profiler report after invoking all of the rules. The parameters
        used in any of these rules can be customized by following this naming scheme:

        <rule_name>_<parameter_name> : value

        Validation is also done here to ensure that:
            1. The key names follow the above format
            2. rule_name corresponds to a valid rule name.
            3. parameter_name corresponds to a valid parameter of this rule.
            4. The parameter for this rule's parameter is valid.

        :param rule_parameters: Dictionary mapping rule + parameter name to value.
        """

        rule_classes = ProfilerReport.get_rules()
        rule_names = str([rule.__name__ for rule in rule_classes]).strip("[]")
        rule_classes_by_name = {rule.__name__.lower(): rule for rule in rule_classes}
        validate_boolean(self.__class__.__name__, "opt_out_telemetry", opt_out_telemetry)

        formatted_rule_parameters = {}

        for key, val in rule_parameters.items():
            assert key.count("_") >= 1, invalid_key_format_error.format(key)
            rule_name, *parameter_name = key.split("_")
            parameter_name = "_".join(parameter_name).lower()
            assert rule_name.lower() in rule_classes_by_name, invalid_rule_error.format(
                rule_name, rule_names
            )
            rule_class = rule_classes_by_name[rule_name.lower()]
            try:
                rule_class(**{parameter_name: val})
            except TypeError:
                rule_args = str(inspect.getfullargspec(rule_class.__init__)[0]).strip("[]")
                raise TypeError(
                    invalid_param_error.format(parameter_name, rule_class.__name__, rule_args)
                )
            formatted_key = f"{rule_class.__name__}_{parameter_name}"
            formatted_rule_parameters[formatted_key] = val

        super().__init__(
            opt_out_telemetry=opt_out_telemetry, custom_rule_parameters=formatted_rule_parameters
        )