def get_users(member=None, manager=None): users = (User.cached(user_id) for (user_id,) in Session.query(Job.user_id).distinct()) if member: users = (user for user in users if user.is_member(member)) if manager: users = (user for user in users if user.is_manager(manager)) return list(users)