Return all the non callable and non special attributes of the input data

    :param data: an object
    :returns: a list

    >>> class table:
    ...     def __init__(self, name, rows, cols):
    ...         self.name = name
    ...         self.rows = rows
    ...         self.cols = cols

    >>> t = table('people', 100, 3)
    >>> attributes(t)
    ['cols', 'name', 'rows']

def attributes(data):
    """Return all the non callable and non special attributes of the input data

    :param data: an object
    :returns: a list

    >>> class table:
    ...     def __init__(self, name, rows, cols):
    ...         self.name = name
    ...         self.rows = rows
    ...         self.cols = cols

    >>> t = table('people', 100, 3)
    >>> attributes(t)
    ['cols', 'name', 'rows']

    """
    return [x for x in dir(data) if not callable(x) and not x.startswith('__')]