def METHOD_NAME(
    config: str,
):
    """
    Generate artificial datasets specified in a config file.
    Parameters
    ----------
    config: str
        Path to config file.
    """
    with Path(config).open() as f:
        options = yaml.safe_load(f)
    assert len(options["dm_name"]) == 1, len(options["dm_name"])
    dm_name = options["dm_name"][0]
    prefix = f"{dm_name}_"
    data_configs = {}
    for key in options:
        if key in CheatMetaData.__annotations__.keys():
            data_configs[key] = options[key]
        elif key.startswith(prefix):
            data_configs[key[len(prefix) :]] = options[key]
    values = list(itertools.product(*data_configs.values()))
    all_configurations = [dict(zip(data_configs.keys(), v)) for v in values]
    for config in all_configurations:
        dm = get_data_module(
            name=dm_name,
            **config,
        )
        dm.setup()