To optimize the function, we can take advantage of the fact that weekends always occur on a fixed cycle: every 7 days. So instead of iterating over every day in the date range, we can simply calculate the number of weekends that occur within that range by dividing the number of days by 7, and rounding down to the nearest integer. We can then multiply that result by 2 (since there are 2 weekend days per weekend), and add any extra weekend days that occur at the beginning or end of the range. Here's the optimized function:

 
import datetime

def count_weekend_days(start_date_str, end_date_str):
    start_date = datetime.datetime.strptime(start_date_str, '%Y-%m-%d').date()
    end_date = datetime.datetime.strptime(end_date_str, '%Y-%m-%d').date()

    num_days = (end_date - start_date).days + 1
    num_weekends = (num_days // 7) * 2
    remaining_days = num_days % 7

    for i in range(remaining_days):
        date = start_date + datetime.timedelta(days=i)
        if date.weekday() == 5 or date.weekday() == 6:
            num_weekends += 1

    return num_weekends
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence