1
1
from collections import defaultdict
2
2
from datetime import datetime , timedelta
3
3
from enum import Enum
4
- from typing import Any , Dict , List , Mapping , Optional , Set , Tuple
4
+ from typing import Any , Dict , Mapping , Optional , Set , Tuple
5
5
6
6
import pytz
7
7
import sentry_sdk
@@ -410,19 +410,14 @@ def get_all_alerts_of_organization(cls, organization_id):
410
410
411
411
@classmethod
412
412
def get_organization_metrics_compatibility (cls , organization , project_objects ):
413
- data : Dict [str , List [Any ]] = {
414
- "incompatible_projects" : [],
415
- "compatible_projects" : [],
416
- }
417
-
418
413
params = {
419
414
"organization_id" : organization .id ,
420
415
"project_objects" : project_objects ,
421
416
"start" : datetime .now (tz = pytz .UTC ) - timedelta (days = QUERY_TIME_RANGE_IN_DAYS ),
422
417
"end" : datetime .now (tz = pytz .UTC ),
423
418
}
424
419
425
- project_ids = [ project .id for project in project_objects ]
420
+ projects = { project .id : project for project in project_objects }
426
421
427
422
count_has_txn = "count_has_transaction_name()"
428
423
count_null = "count_null_transactions()"
@@ -439,14 +434,19 @@ def get_organization_metrics_compatibility(cls, organization, project_objects):
439
434
use_aggregate_conditions = True ,
440
435
)
441
436
442
- data ["compatible_projects" ] = sorted (
443
- row ["project.id" ] for row in compatible_results ["data" ]
444
- )
445
- data ["incompatible_projects" ] = sorted (
446
- list (set (project_ids ) - set (data ["compatible_projects" ]))
447
- )
437
+ compatible_project_ids = {row ["project.id" ] for row in compatible_results ["data" ]}
438
+ incompatible_project_ids = set (projects .keys ()) - compatible_project_ids
448
439
449
- return data
440
+ return {
441
+ "compatible_projects" : [
442
+ {"id" : project_id , "slug" : projects [project_id ].slug }
443
+ for project_id in compatible_project_ids
444
+ ],
445
+ "incompatible_projects" : [
446
+ {"id" : project_id , "slug" : projects [project_id ].slug }
447
+ for project_id in incompatible_project_ids
448
+ ],
449
+ }
450
450
451
451
@classmethod
452
452
def run_compatibility_check (cls , org_id ):
0 commit comments