def METHOD_NAME(self, key, value_dict, inherits_from):
    if self._ignore(key, "diagnostic-definition-redundant-override"):
        return False, None, None, None
    if "overrides" not in self._definitions[inherits_from]:
        return self.METHOD_NAME(key, value_dict, self._definitions[inherits_from]["inherits"])
    parent = self._definitions[inherits_from]["overrides"]
    if key not in self._definitions[self.base_def]["overrides"]:
        is_number = False
    else:
        is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int")
    for child_key, child_value in value_dict.items():
        if key in parent:
            if child_key in ("default_value", "value"):
                check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None]
            else:
                check_values = [parent[key].get(child_key, None)]
            for check_value in check_values:
                if is_number and child_key in ("default_value", "value"):
                    try:
                        v = str(float(child_value))
                    except:
                        v = child_value
                    try:
                        cv = str(float(check_value))
                    except:
                        cv = check_value
                else:
                    v = child_value
                    cv = check_value
                if v == cv:
                    return True, child_key, child_value, parent
            if "inherits" in parent:
                return self.METHOD_NAME(key, value_dict, parent["inherits"])
    return False, None, None, None