from sqlalchemy import or_ from typing import List from server.db.models import Favorites def add_tag_filters(filters: list, tag_id: List[int or None]): not_none_tag_id = [tid for tid in tag_id if tid is not None] add_none_tag_id = None in tag_id none_filter, not_none_filter = Favorites.tag_id.is_(None), Favorites.tag_id.in_(not_none_tag_id) if add_none_tag_id and not_none_tag_id: filters.append(or_(none_filter, not_none_filter)) elif add_none_tag_id: filters.append(none_filter) elif not_none_tag_id: filters.append(not_none_filter)