def min_max_dates_dict(min_max_dates):
    """Calculates dates needed by the pipeline, starting from min and max dates.

    Generates dictionary of dates needed for the calculation starting from a
    tuple containing min_date and max_date from the input logs.

    Args:
        min_max_dates: Tuple containing min_date and max_date for the input
            data.

    Returns:
         Dictionary containing info related to dates needed for the calculation.
    """
    min_date, max_date = min_max_dates
    tot_days = (max_date - min_date).days
    if round(tot_days * 0.05) < 30:
        cohort_days = 30
    else:
        cohort_days = round(round(tot_days * 0.05) / 30) * 30

    return {
        'min_date': min_date,
        'max_date': max_date,
        'total_days': tot_days,
        'half_days': round((tot_days / 2) + 0.1),
        'cohort_days': cohort_days
    }