import inspect


def _isdata(obj):
    """
    Stolen from inspect.classify_class_attrs function, basically is the
    provided object just something that we're providing at the class level.
    If True, it will be assumed that this obj does not have a meaningful
    __doc__ attribute and it should be provided via the data_spec
    initialization argument
    """
    # Classify the object.
    if isinstance(obj, staticmethod):
        return False
    elif isinstance(obj, classmethod):
        return False
    elif isinstance(obj, property):
        return False
    elif inspect.ismethod(obj) or inspect.ismethoddescriptor(obj):
        return False
    else:
        return True