def process_int_float_entry_data(widget_kwargs, type_):
    """Check/define data on intfloat entry.

    Parameters
    ==========
    widget_kwargs (dict)
        keyword arguments to define an intfloat entry
        widget.
    type_ (any Python value)
        value used as type information to help define
        the value for the 'numeric_classes_hint' string.
    """
    ### if a 'numeric_classes_hint' field is not present
    ### in the widget keyword arguments, create one for it
    ### using the type information (the class info
    ### also specifies a type(None) class, we also set
    ### the 'allow_none' field to True

    if "numeric_classes_hint" not in widget_kwargs:

        ## create an 'raise_error' flag set to False
        raise_error = False

        ## retrieve a value for the string depending on
        ## the type information (set the flag to raise
        ## an error ahead if type information not allowed
        ## is found)

        # if the type_ info is a tuple or list...

        if isinstance(type_, (tuple, list)):

            # if the tuple/list is empty, raise an error
            if not type_:
                raise_error = True

            # if any type contained in the tuple or list
            # is not allowed, set the raise_error flag on

            elif any(item not in ALLOWED_INT_FLOAT_TYPES for item in type_):
                raise_error = True

            # otherwise you can inspect the items to
            # come up with a class name, and maybe a
            # allow_none field too

            else:

                # define the class name according to the
                # numeric types present in types

                if int in type_ and float in type_:
                    numeric_classes_hint = "int_float"

                elif int in type_:
                    numeric_classes_hint = "int"
                elif float in type_:
                    numeric_classes_hint = "float"

                else:
                    raise_error = True

                # if None or NoneType is present, set the
                # 'allow_none' field to True (regardless
                # of whether it already exists or not)

                if None in type_ or type(None) in type_:
                    widget_kwargs["allow_none"] = True

        # if the type_ info is builtin int or builtin
        # float, assign the respective names to the
        # numeric_classes_hint string

        elif type_ == int:
            numeric_classes_hint = "int"
        elif type_ == float:
            numeric_classes_hint = "float"

        # otherwise we have a type not allowed, so set the
        # raise_error flag on
        else:
            raise_error = True

        ## if the raise error flag is set, do as it says:
        ## raise an error to report the error

        if raise_error:

            raise TypeError("type information for int float entry" " isn't legal")

        ## otherwise it means we achieved a legal
        ## numeric_classes_hint, so store it
        else:
            widget_kwargs["numeric_classes_hint"] = numeric_classes_hint

    ### if a numeric_classes_hint field is present though,
    ### check whether it's value is allowed

    else:

        if widget_kwargs["numeric_classes_hint"] not in ALLOWED_CLASS_NAMES:

            msg = (
                "'numeric_classes_hint' value for int float"
                " entry isn't legal, must be one of {}"
            ).format(ALLOWED_CLASS_NAMES)

            raise ValueError(msg)

    ### if value in the 'value' field of the widget_kwargs
    ### is None, set allow none to True

    if widget_kwargs["value"] is None:
        widget_kwargs["allow_none"] = True

    ### finally, check whether the value complies with
    ### the expected type
    check_int_float_entry_value_type_compliance(widget_kwargs)
Check/define data on intfloat entry.

    Parameters
    ==========
    widget_kwargs (dict)
        keyword arguments to define an intfloat entry
        widget.
    type_ (any Python value)
        value used as type information to help define
        the value for the 'numeric_classes_hint' string.
    
nodezator/graphman/widget/utils.py