Skip to content

Commit 698b176

Browse files
Copilotredreceipt
andauthored
Fix TypeError, division by zero, and KeyError in leaderboard calculations (#165)
* Initial plan * Fix TypeError, division by zero, and KeyError issues in app.py Co-authored-by: redreceipt <2659478+redreceipt@users.noreply.github.com> * Fix KeyError in cycle_member_points section Co-authored-by: redreceipt <2659478+redreceipt@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: redreceipt <2659478+redreceipt@users.noreply.github.com>
1 parent ad483fe commit 698b176

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

app.py

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,10 @@ def record_breakdown(
259259
category_key = PRIORITY_BREAKDOWN_KEYS.get(priority)
260260
if slug:
261261
scores_by_slug[slug] = scores_by_slug.get(slug, 0) + points
262-
names_by_slug.setdefault(slug, display_name or display_name_overrides[slug])
262+
names_by_slug.setdefault(
263+
slug,
264+
display_name or display_name_overrides.get(slug, display_name),
265+
)
263266
if category_key:
264267
record_breakdown(
265268
points_breakdown_by_slug,
@@ -294,7 +297,9 @@ def record_breakdown(
294297
slug = github_to_slug.get(normalize_identity(reviewer))
295298
if slug:
296299
scores_by_slug[slug] = scores_by_slug.get(slug, 0) + review_points
297-
names_by_slug.setdefault(slug, display_name_overrides[slug])
300+
names_by_slug.setdefault(
301+
slug, display_name_overrides.get(slug, format_display_name(reviewer))
302+
)
298303
record_breakdown(
299304
points_breakdown_by_slug,
300305
count_breakdown_by_slug,
@@ -325,7 +330,9 @@ def record_breakdown(
325330
slug = github_to_slug.get(normalize_identity(author))
326331
if slug:
327332
scores_by_slug[slug] = scores_by_slug.get(slug, 0) + pr_points
328-
names_by_slug.setdefault(slug, display_name_overrides[slug])
333+
names_by_slug.setdefault(
334+
slug, display_name_overrides.get(slug, format_display_name(author))
335+
)
329336
record_breakdown(
330337
points_breakdown_by_slug,
331338
count_breakdown_by_slug,
@@ -354,7 +361,9 @@ def record_breakdown(
354361
slug = resolve_slug(lead_name, format_display_name(lead_name))
355362
if slug:
356363
scores_by_slug[slug] = scores_by_slug.get(slug, 0) + points
357-
names_by_slug.setdefault(slug, display_name_overrides[slug])
364+
names_by_slug.setdefault(
365+
slug, display_name_overrides.get(slug, format_display_name(lead_name))
366+
)
358367
record_breakdown(
359368
points_breakdown_by_slug,
360369
count_breakdown_by_slug,
@@ -381,7 +390,9 @@ def record_breakdown(
381390
slug = resolve_slug(member_name, format_display_name(member_name))
382391
if slug:
383392
scores_by_slug[slug] = scores_by_slug.get(slug, 0) + points
384-
names_by_slug.setdefault(slug, display_name_overrides[slug])
393+
names_by_slug.setdefault(
394+
slug, display_name_overrides.get(slug, format_display_name(member_name))
395+
)
385396
record_breakdown(
386397
points_breakdown_by_slug,
387398
count_breakdown_by_slug,
@@ -433,26 +444,26 @@ def record_breakdown(
433444
)
434445

435446
leaderboard_entries = [
436-
entry for entry in leaderboard_entries if entry.get("slug") in apollos_team_slugs
447+
entry
448+
for entry in leaderboard_entries
449+
if (slug := entry.get("slug")) is not None and slug in apollos_team_slugs
437450
]
438451

439452
leaderboard_entries.sort(key=lambda entry: entry["score"], reverse=True)
440453

454+
total_completed_issues = len(
455+
completed_bugs + completed_new_features + completed_technical_changes
456+
)
457+
441458
return {
442459
"days": days,
443460
"priority_issues": sorted(
444461
open_priority_bugs, key=lambda x: x["createdAt"]
445462
),
446463
"issue_count": len(created_priority_bugs),
447464
"priority_percentage": int(
448-
len(completed_priority_bugs)
449-
/ len(
450-
completed_bugs
451-
+ completed_new_features
452-
+ completed_technical_changes
453-
)
454-
* 100
455-
),
465+
len(completed_priority_bugs) / total_completed_issues * 100
466+
) if total_completed_issues else 0,
456467
"leaderboard_entries": leaderboard_entries,
457468
"all_issues": created_priority_bugs + open_priority_bugs,
458469
"issues_by_platform": by_platform(created_priority_bugs),

0 commit comments

Comments
 (0)