from typing import Sequence


def combine_dicts(dict_ls: Sequence[dict], strict=True, dict_class=dict):
    """Merges entries from one or more dicts into a single dict (shallow copy).

    Args:
        dict_ls (Sequence[dict]): sequence of dictionaries to combine.
        strict (bool): whether to throw an exception in the event of key collision, else overwrite.
        dict_class (dictionary): dictionary class for the destination dict.

    Returns:
        Dictionary containing the entries from the input dicts.

    """
    # noinspection PyCallingNonCallable
    new_dict = dict_class()
    for i, dictionary in enumerate(dict_ls):
        for k, v in dictionary.items():
            if strict:
                if k in new_dict:
                    raise RuntimeError(f"repeated key {k} seen in dict {i}")
            new_dict[k] = v
    return new_dict