def IntegerLike(msg=None):
    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.isdigit()) or
            (isinstance(value, unicode) and value.isdigit())
        ):
            raise Invalid(msg or (
                'Invalid input <{0}>; expected an integer'.format(value))
            )
        else:
            return value
    return fn
Checks whether a value is:
dataset/ETHPy150Open manjitkumar/drf-url-filters/filters/validations.py/IntegerLike