from typing import List
from typing import Dict


def clean_column_names(column_list: List[str]) -> Dict[str, str]:
    """Simple string cleaning rules for columns.

    Args:
        column_list: Column names to be cleaned

    Returns:
        A dict mapping old and cleaned column names.
    """
    new_column_list = [
        (
            col.lower()
            .strip()
            .replace("  ", "_")
            .replace(r"/", "_")
            .replace(r"\n", "_")
            .replace(r"\\", "_")
            .replace(r"\t", "_")
            .replace(" ", "_")
            .replace("^", "")
        )
        for col in column_list
    ]
    return dict(zip(column_list, new_column_list))