def is_numeric(v) -> bool:
    """Returns true if is a numeric type (int or float) or contains numeric elements if this is a tuple

    Args:
        v ([type]): can be tuple or a primitive type

    Returns:
        bool: true if v is numeric or in case of a tuple, all of v's members are numeric
    """
    if isinstance(v, tuple) or isinstance(v, list):
        return all([is_numeric(_x) for _x in v])
    else:
        return isinstance(v, float) or isinstance(v, int)