from typing import Dict
from typing import List


def to_snake_case(
    d: Dict[str, str], replace: List[str] = ["."]
) -> Dict[str, str]:
    """
    Format the keys of the input dictionary to be in snake case.

    Note
    ----
    This converts keys from "Snake Case" to "snake_case".

    Parameters
    ----------
    d: Dict[str, str]
        Contains the keys to convert
    replace: List[str]
        A list of characters to replace with blanks

    Returns
    -------
    Dict[str, str]
        The converted dictionary
    """

    def _format_key(key: str) -> str:
        for c in replace:
            key = key.replace(c, "")
        return key.lower()

    return {
        "_".join(_format_key(key).split()): value for key, value in d.items()
    }