@@ -36,9 +36,10 @@ def create_package_subscription_notifications(
3636 return
3737
3838 # Find users subscribed to ANY of these packages
39- subscribed_users = User .objects .filter (
39+ subscribed_users_qs = User .objects .filter (
4040 profile__package_subscriptions__overlap = affected_packages
4141 ).select_related ("profile" )
42+ subscribed_users_set = set (subscribed_users_qs )
4243
4344 # Find maintainers of affected packages from cached suggestion
4445 maintainer_users = set ()
@@ -55,14 +56,14 @@ def create_package_subscription_notifications(
5556 )
5657
5758 # Combine both sets of users, avoiding duplicates
58- all_users_to_notify = set ( subscribed_users ) | maintainer_users
59+ all_users_to_notify = subscribed_users_set | maintainer_users
5960
6061 logger .debug (f"About to notify users about packages: { affected_packages } " )
6162 logger .debug (f"Users to notify: { all_users_to_notify } " )
6263
6364 logger .info (
6465 f"Creating notifications for { len (all_users_to_notify )} users for CVE { cve_id } "
65- f"({ len (subscribed_users )} subscribed, { len (maintainer_users )} maintainers)"
66+ f"({ len (subscribed_users_set )} subscribed, { len (maintainer_users )} maintainers)"
6667 )
6768
6869 for user in all_users_to_notify :
@@ -71,7 +72,7 @@ def create_package_subscription_notifications(
7172 notification_reason = []
7273
7374 # Check if user is subscribed to any affected packages
74- if user in subscribed_users :
75+ if user in subscribed_users_set :
7576 user_subscribed_packages = [
7677 pkg
7778 for pkg in user .profile .package_subscriptions
@@ -88,7 +89,7 @@ def create_package_subscription_notifications(
8889 pkg for pkg in affected_packages if pkg not in user_affected_packages
8990 ]
9091 user_affected_packages .extend (maintainer_packages )
91- if maintainer_packages or (user not in subscribed_users ):
92+ if maintainer_packages or (user not in subscribed_users_set ):
9293 notification_reason .append ("maintainer of" )
9394
9495 if not user_affected_packages :
0 commit comments