def iterator_cycle(variables: VarType, parent: str) -> Iterable[VarMatrix]:
    """Cycle through a list of values a specified number of times

    Args:
        variables: The input variables for the creation of the range
        parent: The variable for which the values are being generated.

    Returns: A list of dictionaries mapping the parent to each value.

    """
    if isinstance(variables, dict):
        if variables.get("times"):
            times = int(variables["times"])
            del variables["times"]

            yield list(variable_matrix(variables, parent, "product")) * times

        else:
            raise ValueError(f"times is a required keyword for the repeat iterator.")
    else:
        raise ValueError(
            f"The repeat operator only takes a dict as arguments, got {variables} of type {type(variables)}"
        )
Cycle through a list of values a specified number of times

    Args:
        variables: The input variables for the creation of the range
        parent: The variable for which the values are being generated.

    Returns: A list of dictionaries mapping the parent to each value.