Returns a ``date`` object in the future (that is, 1 day from now) up to
    the specified ``end``. ``end`` can be a string, another date, or a
    timedelta. If it's a string, it must start with `+`, followed by and integer
    and a unit, Eg: ``'+30d'``. Defaults to `'+30d'`

    Valid units are:
    * ``'years'``, ``'y'``
    * ``'weeks'``, ``'w'``
    * ``'days'``, ``'d'``
    * ``'hours'``, ``'hours'``
    * ``'minutes'``, ``'m'``
    * ``'seconds'``, ``'s'``

def future_date(end='+30d'):
    """
    Returns a ``date`` object in the future (that is, 1 day from now) up to
    the specified ``end``. ``end`` can be a string, another date, or a
    timedelta. If it's a string, it must start with `+`, followed by and integer
    and a unit, Eg: ``'+30d'``. Defaults to `'+30d'`

    Valid units are:
    * ``'years'``, ``'y'``
    * ``'weeks'``, ``'w'``
    * ``'days'``, ``'d'``
    * ``'hours'``, ``'hours'``
    * ``'minutes'``, ``'m'``
    * ``'seconds'``, ``'s'``
    """
    return lambda n, f: f.future_date(
        end_date=end, tzinfo=get_timezone(),
    )