Args:
        tablename (str): table name

    Returns:
        column_list : list of tuples with format:
            (
                [0] column_id  : id of the column
                [1] name       : the name of the column
                [2] type_      : the type of the column (TEXT, INT, etc...)
                [3] notnull    : 0 or 1 if the column can contains null values
                [4] dflt_value : the default value
                [5] pk         : 0 or 1 if the column partecipate to the primary key
            )

    References:
        http://stackoverflow.com/questions/17717829/how-to-get-column-names-from-a-table-in-sqlite-via-pragma-net-c

    CommandLine:
        python -m utool.util_sqlite --test-get_table_columninfo_list

    Example:
        >>> # DISABLE_DOCTEST
        >>> from utool.util_sqlite import *  # NOQA

def get_table_columninfo_list(cur, tablename):
    """
    Args:
        tablename (str): table name

    Returns:
        column_list : list of tuples with format:
            (
                [0] column_id  : id of the column
                [1] name       : the name of the column
                [2] type_      : the type of the column (TEXT, INT, etc...)
                [3] notnull    : 0 or 1 if the column can contains null values
                [4] dflt_value : the default value
                [5] pk         : 0 or 1 if the column partecipate to the primary key
            )

    References:
        http://stackoverflow.com/questions/17717829/how-to-get-column-names-from-a-table-in-sqlite-via-pragma-net-c

    CommandLine:
        python -m utool.util_sqlite --test-get_table_columninfo_list

    Example:
        >>> # DISABLE_DOCTEST
        >>> from utool.util_sqlite import *  # NOQA
    """
    cur.execute('PRAGMA TABLE_INFO("{tablename}")'.format(tablename=tablename))
    colinfo_list = cur.fetchall()
    colrichinfo_list = [SQLColumnRichInfo(*colinfo) for colinfo in colinfo_list]
    return colrichinfo_list