def METHOD_NAME(target_user_gps=None):
    project_settings = ProjectSettings.objects.first()
    if project_settings is None:
        # TODO: what to do when this isn't configured??
        return []
    target_user_emails = []
    if not target_user_gps or not isinstance(target_user_gps, list):
        return [project_settings.staff_gp_email]
    if CONTRACTING_GROUP_NAME in target_user_gps:
        if project_settings.contracting_gp_email:
            target_user_emails.extend([project_settings.contracting_gp_email])
        else:
            contracting_users_email = []
            for user in User.objects.contracting():
                contracting_users_email.append(user.email)
            target_user_emails.extend(contracting_users_email)
    if FINANCE_GROUP_NAME in target_user_gps:
        if project_settings.finance_gp_email:
            target_user_emails.extend([project_settings.finance_gp_email])
        else:
            finance_users_email = []
            for user in User.objects.finances():
                finance_users_email.append(user.email)
            target_user_emails.extend(finance_users_email)
    if STAFF_GROUP_NAME in target_user_gps:
        if project_settings.staff_gp_email:
            target_user_emails.extend([project_settings.staff_gp_email])
        else:
            staff_users_email = []
            for user in User.objects.staff():
                staff_users_email.append(user.email)
            target_user_emails.extend(staff_users_email)
    return target_user_emails