def normalizeSizeClass(prod):
    size = fallbackNormalize(prod, ["screenSizeIn", "screenSizeClassIn"])
    if size is None:
        return None
    return roundToListValues(size, range(0, 100, 2))


def roundToListValues(val, val_list):
    return argmax(val_list, lambda x: abs(val - x), -1)


if __name__ == "__main__":
    size_class_ai = AttrInfo()
    size_class_ai.name = "size_class"
    size_class_ai.display_name = "Screen Size Class"
    size_class_ai.help_text = "Blah blah blah Screen Size Class"
    size_class_ai.is_discrete = False
    size_class_ai.is_independant = True
    size_class_ai.rank = 1
    size_class_ai.units = "inches"

    size_ai = AttrInfo()
    size_ai.name = "size"
    size_ai.display_name = "Screen Size"
    size_ai.help_text = "Blah blah blah Screen Size"
    size_ai.is_discrete = False
    size_ai.is_independant = True
    size_ai.rank = -1
    size_ai.units = "inches"

def normalizeSizeClass(prod):
    size = fallbackNormalize(prod, ['screenSizeIn', 'screenSizeClassIn'])
    if size is None:
        return None
    return roundToListValues(size, range(0, 100, 2))


def roundToListValues(val, val_list):
    return argmax(val_list, lambda x: abs(val - x), -1)


if __name__ == "__main__":
    size_class_ai = AttrInfo()
    size_class_ai.name = "size_class"
    size_class_ai.display_name = "Screen Size Class"
    size_class_ai.help_text = "Blah blah blah Screen Size Class"
    size_class_ai.is_discrete = False
    size_class_ai.is_independant = True
    size_class_ai.rank = 1
    size_class_ai.units = "inches"

    size_ai = AttrInfo()
    size_ai.name = "size"
    size_ai.display_name = "Screen Size"
    size_ai.help_text = "Blah blah blah Screen Size"
    size_ai.is_discrete = False
    size_ai.is_independant = True
    size_ai.rank = -1
    size_ai.units = "inches"