def METHOD_NAME(request):
    multiples = {
        "articles": extract_strings,
        "ccn": extract_strings,
        "city": extract_strings,
        "collection_weeks": extract_integers,
        "dates": extract_integers,
        "epiweeks": extract_integers,
        "fips_code": extract_strings,
        "flu_types": extract_strings,
        "geo_value": extract_strings,
        "geo_values": extract_strings,
        "hospital_pks": extract_strings,
        "issues": extract_integers,
        "locations": extract_strings,
        "names": extract_strings,
        "publication_dates": extract_strings,
        "regions": extract_strings,
        "sensor_names": extract_strings,
        "signal": extract_strings,
        "signals": extract_strings,
        "states": extract_strings,
        "time_types": extract_strings,
        "time_values": extract_dates,
        "zip": extract_strings,
    }
    multiple_selection_allowed = 2
    if "window" in request.args.keys():
        multiple_selection_allowed -= 1
    for k, v in request.args.items():
        if "*" in v:
            multiple_selection_allowed -= 1
            continue
        try:
            vals = multiples.get(k)(k)
            if len(vals) >= 2:
                multiple_selection_allowed -= 1
            elif len(vals) and isinstance(vals, list) and isinstance(vals[0], tuple):
                # else we have one val which is a tuple, representing a range, and thus is a "multiple"
                multiple_selection_allowed -= 1
        except ValidationFailedException:
            continue
        except TypeError:
            continue
    return multiple_selection_allowed