def unsquish(incs, f):
    """
    This function applies uses a flattening factor (f) to unflatten inclination
    data (incs) and returns 'unsquished' values.

    Parameters
    ----------
    incs : list of inclination values or a single value
    f : unflattening factor (between 0.0 and 1.0)

    Returns
    ----------
    incs_unsquished : List of unflattened inclinations (in degrees)

    Examples
    --------
    Take a list of inclinations, flatten them using ``ipmag.squish`` and then
    use ``ipmag.squish`` and the flattening factor to unflatten them.

    >>> inclinations = [43,47,41]
    >>> squished_incs = ipmag.squish(inclinations,0.4)
    >>> ipmag.unsquish(squished_incs,0.4)
    [43.0, 47.0, 41.0]
    """
    try:
        length = len(incs)
        incs_unsquished = []
        for n in range(0, length):
            inc_rad = np.deg2rad(incs[n])  # convert to radians
            inc_new_rad = (old_div(1., f)) * np.tan(inc_rad)
            # convert back to degrees
            inc_new = np.rad2deg(np.arctan(inc_new_rad))
            incs_unsquished.append(inc_new)
        return incs_unsquished
    except:
        inc_rad = np.deg2rad(incs)  # convert to radians
        inc_new_rad = (old_div(1., f)) * np.tan(inc_rad)
        inc_new = np.rad2deg(np.arctan(inc_new_rad))  # convert back to degrees
        return inc_new