Check that the data value is a non floating
    point number with size less that long64.
    * Also support for logicalType timestamp validation with datetime.

    Int64 = -9223372036854775808 <= datum <= 9223372036854775807

    conditional python types
    (int, long, numbers.Integral,
    datetime.time, datetime.datetime, datetime.date)

    :Parameters
    ----------
    datum: Any
        Data being validated
    kwargs: Any
        Unused kwargs

def validate_long(datum, **kwargs):
    """
    Check that the data value is a non floating
    point number with size less that long64.
    * Also support for logicalType timestamp validation with datetime.

    Int64 = -9223372036854775808 <= datum <= 9223372036854775807

    conditional python types
    (int, long, numbers.Integral,
    datetime.time, datetime.datetime, datetime.date)

    :Parameters
    ----------
    datum: Any
        Data being validated
    kwargs: Any
        Unused kwargs
    """
    return (
            (isinstance(datum, (int, long, numbers.Integral))
             and LONG_MIN_VALUE <= datum <= LONG_MAX_VALUE
             and not isinstance(datum, bool))
            or isinstance(
                datum, (datetime.time, datetime.datetime, datetime.date)
            )
    )