returns a lambda that determines the number of days between the two dates
    the dates can be strings (column names) or actual dates
    e.g. Aggregate(days('date', today), ['min','max'], 'days_since')
    TODO: should there be a Days(AggregateBase) for this? handle naming

def days(date1, date2):
    """
    returns a lambda that determines the number of days between the two dates
    the dates can be strings (column names) or actual dates
    e.g. Aggregate(days('date', today), ['min','max'], 'days_since')
    TODO: should there be a Days(AggregateBase) for this? handle naming
    """
    return lambda df, date1=date1, date2=date2: _days(df, date1, date2)