from typing import Optional
from typing import Dict
from typing import Any


def set_default_arguments(dictionary: Optional[Dict]=None, **kwargs) -> Dict[str, Any]:
    """
    Non-overwriting kwargs setter. Sets arguments in an optional dictionary only if they are not
    already present

    Parameters
    ----------
    dictionary : Dict
        dictionary to set keyword arguments in. Created if not provided
    kwargs : Dict
        keywords to add to the dictionary

    Returns
    -------
    Dict :
        Dictionary containing keywords

    """
    dictionary = {} if dictionary is None else dictionary
    for key, value in kwargs.items():
        if key not in dictionary:
            dictionary[key] = value
    return dictionary