def update_dictionary(dictionary, other):
    """Create a copy of dictionary and update it with other.

    Args:
        dictionary (dict)
        other (dict)

    Returns:
        dict: The updated dictionary


    Examples:
        # make sure input is not changed
        >>> first = {"a": 1, "b": 2}
        >>> updated = update_dictionary(first, {"c": 3})
        >>> assert first == {"a": 1, "b": 2}

        # make sure update works
        >>> update_dictionary({"a": 1, "b": 2}, {"c": 3})
        {'a': 1, 'b': 2, 'c': 3}

    """
    return {**dictionary, **other}