def get_non_subscribed_tups() -> List[Tuple[(UserProfile, Stream)]]:
    stream_ids = {stream.id for stream in streams}
    not_subscribed: List[Tuple[(UserProfile, Stream)]] = []
    for user_profile in users:
        user_sub_stream_info = existing_subs_by_user[user_profile.id]
        subscribed_stream_ids = {stream.id for (sub, stream) in user_sub_stream_info}
        not_subscribed_stream_ids = (stream_ids - subscribed_stream_ids)
        for stream_id in not_subscribed_stream_ids:
            stream = stream_dict[stream_id]
            not_subscribed.append((user_profile, stream))
    return not_subscribed
def get_non_subscribed_tups() -> List[Tuple[(UserProfile, Stream)]]:
    stream_ids = {stream.id for stream in streams}
    not_subscribed: List[Tuple[(UserProfile, Stream)]] = []
    for user_profile in users:
        user_sub_stream_info = existing_subs_by_user[user_profile.id]
        subscribed_stream_ids = {stream.id for (sub, stream) in user_sub_stream_info}
        not_subscribed_stream_ids = (stream_ids - subscribed_stream_ids)
        for stream_id in not_subscribed_stream_ids:
            stream = stream_dict[stream_id]
            not_subscribed.append((user_profile, stream))
    return not_subscribed