@staticmethod
def _sanitize_input(minvals, maxvals):
    """Normalizes the input of minvals and maxvals.

        Parameters
        ----------
        minvals : float or int or list of float or list of int
            the minimum value(s) for the interface set
        maxvals : float or int or list of float or list of int
            the maximum value(s) for the interface set

        Returns
        -------
        minvals : list
            minimum values as a list
        maxvals : list
            maximum values as a list
        direction : 1, -1, or 0
            whether the maximum value are increasing (1), the minimum values
            are decreasing (-1), or it is unclear (0). "Unclear" can happen
            if both are changing or if neither are changing.
        """
    direction = 0
    try:
        len_min = len(minvals)
    except TypeError:
        len_min = 1
        minvals = [minvals]
    try:
        len_max = len(maxvals)
    except TypeError:
        len_max = 1
        maxvals = [maxvals]
    if len_min == len_max:
        if minvals.count(minvals[0]) == len_min:
            direction += 1
        if maxvals.count(maxvals[0]) == len_max:
            direction += -1
    elif len_max > len_min == 1:
        direction = 1
    elif len_min > len_max == 1:
        direction = -1
    else:
        raise RuntimeError("Can't reconcile array lengths: " + str(minvals) +
            ', ' + str(maxvals))
    minvs = minvals
    maxvs = maxvals
    if len_min == 1:
        minvs = minvs * len(maxvs)
    if len_max == 1:
        maxvs = maxvs * len(minvs)
    return minvs, maxvs, direction
