def Alphanumeric(msg=None):
    '''
    Checks whether a value is:
        - int, or
        - long, or
        - float without a fractional part, or
        - str or unicode composed only of alphanumeric characters
    '''
    def fn(value):
        if not (
            isinstance(value, int) or
            isinstance(value, long) or
            (isinstance(value, float) and value.is_integer()) or
            (isinstance(value, str) and value.isalnum()) or
            (isinstance(value, unicode) and value.isalnum())
        ):
            raise Invalid(msg or (
                'Invalid input <{0}>; expected an integer'.format(value))
            )
        else:
            return value
    return fn
dataset/ETHPy150Open manjitkumar/drf-url-filters/filters/validations.py/Alphanumeric/original