def validate_new_size(new_size):
    """Validates `new_size` argument.
    
    Parameters
    ----------
    new_size : tuple
        The requested size in pixels, as a 2-tuple: (width, height)

    Returns
    ----------
    None

    Raises
    ----------
    TypeError
        When `new_size` is not a tuple.
    ValueError
        When `new_size` is a tuple but not a 2-tuple
    """
    if not isinstance(new_size, tuple):
        raise TypeError(
            'Image size must be a tuple. The argument was of type {}'.
            format(type(new_size)))
    elif len(new_size) != 2:
        raise ValueError(
            'Image size must be a tuple of size 2 i.e., (w, h). The tuple provided was {}'
            .format(new_size))
