from typing import OrderedDict


def update_src_dict(key, item_dict, src_dict=None):
    """
    updates existing or non existing src dict with key values of item dict

    @param key: search key in item dict
    @type key: str
    @param item_dict: the dictionary to search for key
    @type item_dict: dict
    @param src_dict: "starting" dictionary (if there are items matching key - the list will grow)
    @type src_dict: dict|None

    @return dictionary with updated list
    @rtype: dict
    """
    result = src_dict or OrderedDict()
    items_list = result.get(key, [])
    items_list.append(item_dict)
    result.update({key: items_list})
    return result