From cf9de52c75e5cc534693a7d9521d410d9947ac95 Mon Sep 17 00:00:00 2001
From: Christopher Bohn <bohn@unl.edu>
Date: Fri, 7 Jan 2022 10:24:33 -0600
Subject: [PATCH] Warns users away from 0-point assignments. Closes #1

---
 analyze_grades.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/analyze_grades.py b/analyze_grades.py
index bb9587a..32c86bc 100644
--- a/analyze_grades.py
+++ b/analyze_grades.py
@@ -68,11 +68,14 @@ def print_statistics_for_some_majors(assignment: CanvasAssignment, majors: Set[M
 
 
 def print_statistics(assignment: CanvasAssignment, major_partitions: Dict[Major, Set[CanvasUser]]) -> None:
-    print(f'Statistics for {assignment}:')
-    computing_majors: Set[Major] = {major for major in Major.majors if major.is_computing_major}
-    non_computing_majors: Set[Major] = {major for major in major_partitions.keys() if not major.is_computing_major}
-    print_statistics_for_some_majors(assignment, computing_majors, major_partitions)
-    print_statistics_for_some_majors(assignment, non_computing_majors, major_partitions)
+    if assignment.get_points_possible() == 0:
+        print(f'WARNING: {assignment} is a 0-point assignment; cannot compute scaled mean score.')
+    else:
+        print(f'Statistics for {assignment}:')
+        computing_majors: Set[Major] = {major for major in Major.majors if major.is_computing_major}
+        non_computing_majors: Set[Major] = {major for major in major_partitions.keys() if not major.is_computing_major}
+        print_statistics_for_some_majors(assignment, computing_majors, major_partitions)
+        print_statistics_for_some_majors(assignment, non_computing_majors, major_partitions)
 
 
 def print_statistics_by_section(course: CanvasCourse, assignment: CanvasAssignment,
-- 
GitLab