def METHOD_NAME(frameworks_file: Union[str, List[str]], config) -> Namespace:
    """ Load and merge the framework file(s), does not allow duplicate definitions. """
    log.info("Loading frameworks definitions from %s.", frameworks_file)
    if not isinstance(frameworks_file, list):
        frameworks_file = [frameworks_file]
    definitions_by_tag = Namespace()
    for tag in [default_tag]+config.frameworks.tags:
        definitions_by_file = [config_load(_definition_file(file, tag)) for file in frameworks_file]
        if not config.frameworks.allow_duplicates:
            for d1, d2 in itertools.combinations([set(dir(d)) for d in definitions_by_file], 2):
                if d1.intersection(d2) != set():
                    raise ValueError(f"Duplicate entry '{d1.intersection(d2).pop()}' found.")
        definitions_by_tag[tag] = Namespace.merge(*definitions_by_file)
    return definitions_by_tag