from typing import OrderedDict


def parse_col_names(column_names):
    """
    This method takes a string of comma-seperated column names and returns a list of unique
    column names, preserving order.

    :param column_names: string
    :return: column_names: list
    """
    if column_names:
        clean_cols = (column_name.strip() for column_name in column_names)
        unique_ordered = OrderedDict.fromkeys(clean_cols)
        return list(unique_ordered)

    return column_names