PyKubeGrader 0.3.7__tar.gz → 0.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. {pykubegrader-0.3.7/src/PyKubeGrader.egg-info → pykubegrader-0.3.8}/PKG-INFO +1 -1
  2. {pykubegrader-0.3.7 → pykubegrader-0.3.8/src/PyKubeGrader.egg-info}/PKG-INFO +1 -1
  3. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/SOURCES.txt +1 -0
  4. pykubegrader-0.3.8/src/pykubegrader/grade_reports/get_my_grades_testing.py +79 -0
  5. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/submit/submit_assignment.py +3 -2
  6. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/telemetry.py +1 -0
  7. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/.coveragerc +0 -0
  8. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/.github/workflows/main.yml +0 -0
  9. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/.gitignore +0 -0
  10. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/.readthedocs.yml +0 -0
  11. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/AUTHORS.rst +0 -0
  12. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/CHANGELOG.rst +0 -0
  13. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/CONTRIBUTING.rst +0 -0
  14. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/LICENSE.txt +0 -0
  15. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/README.rst +0 -0
  16. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/Makefile +0 -0
  17. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/_static/Drexel_blue_Logo_square_Dark.png +0 -0
  18. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/_static/Drexel_blue_Logo_square_Light.png +0 -0
  19. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/_static/custom.css +0 -0
  20. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/authors.rst +0 -0
  21. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/changelog.rst +0 -0
  22. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/conf.py +0 -0
  23. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/contributing.rst +0 -0
  24. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/index.rst +0 -0
  25. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/license.rst +0 -0
  26. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/readme.rst +0 -0
  27. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/docs/requirements.txt +0 -0
  28. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/examples/.responses.json +0 -0
  29. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/examples/true_false.ipynb +0 -0
  30. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/pyproject.toml +0 -0
  31. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/ruff.toml +0 -0
  32. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/setup.cfg +0 -0
  33. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/setup.py +0 -0
  34. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/dependency_links.txt +0 -0
  35. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/entry_points.txt +0 -0
  36. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/not-zip-safe +0 -0
  37. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/requires.txt +0 -0
  38. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/PyKubeGrader.egg-info/top_level.txt +0 -0
  39. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/__init__.py +0 -0
  40. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/__init__.py +0 -0
  41. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/api_notebook_builder.py +0 -0
  42. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/build_folder.py +0 -0
  43. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/clean_folder.py +0 -0
  44. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/collate.py +0 -0
  45. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/build/markdown_questions.py +0 -0
  46. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/grade_reports/grade_reports.py +0 -0
  47. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/graders/__init__.py +0 -0
  48. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/graders/late_assignments.py +0 -0
  49. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/grading_tester.ipynb +0 -0
  50. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/initialize.py +0 -0
  51. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/log_parser/__init__.py +0 -0
  52. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/log_parser/parse.ipynb +0 -0
  53. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/log_parser/parse.py +0 -0
  54. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/tokens/token_panel.py +0 -0
  55. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/tokens/tokens.py +0 -0
  56. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/tokens/validate_token.py +0 -0
  57. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/utils.py +0 -0
  58. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/validate.py +0 -0
  59. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/__init__.py +0 -0
  60. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/multiple_choice.py +0 -0
  61. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/question_processor.py +0 -0
  62. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/reading_question.py +0 -0
  63. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/select_many.py +0 -0
  64. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/student_info.py +0 -0
  65. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/style.py +0 -0
  66. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/true_false.py +0 -0
  67. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets/types_question.py +0 -0
  68. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets_base/__init__.py +0 -0
  69. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets_base/multi_select.py +0 -0
  70. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets_base/reading.py +0 -0
  71. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/src/pykubegrader/widgets_base/select.py +0 -0
  72. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/test.ipynb +0 -0
  73. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/tests/conftest.py +0 -0
  74. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/tests/import_test.py +0 -0
  75. {pykubegrader-0.3.7 → pykubegrader-0.3.8}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyKubeGrader
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Add a short description here!
5
5
  Home-page: https://github.com/pyscaffold/pyscaffold/
6
6
  Author: jagar2
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyKubeGrader
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Add a short description here!
5
5
  Home-page: https://github.com/pyscaffold/pyscaffold/
6
6
  Author: jagar2
@@ -46,6 +46,7 @@ src/pykubegrader/build/build_folder.py
46
46
  src/pykubegrader/build/clean_folder.py
47
47
  src/pykubegrader/build/collate.py
48
48
  src/pykubegrader/build/markdown_questions.py
49
+ src/pykubegrader/grade_reports/get_my_grades_testing.py
49
50
  src/pykubegrader/grade_reports/grade_reports.py
50
51
  src/pykubegrader/graders/__init__.py
51
52
  src/pykubegrader/graders/late_assignments.py
@@ -0,0 +1,79 @@
1
+
2
+
3
+ # ##### CONFIGURATION #####
4
+
5
+ # weights = {
6
+ # "homework": 0.15,
7
+ # "lab": 0.15,
8
+ # "lecture": 0.15,
9
+ # "quiz": 0.15,
10
+ # "readings": 0.15,
11
+ # "labattendance": 0.05,
12
+ # "practicequiz": 0.015,
13
+ # "practicemidterm": 0.015,
14
+ # "midterm": 0.15,
15
+ # "practicefinal": 0.02,
16
+ # "final": 0.2,
17
+ # }
18
+
19
+ # ##### END CONFIGURATION #####
20
+
21
+
22
+ # class GradeReport:
23
+
24
+ # def __init__(self, start_date="2025-01-06", verbose=True):
25
+ # self.start_date = start_date
26
+ # self.verbose = verbose
27
+ # self.weights = weights
28
+
29
+ # self.assignments, self.student_subs = get_assignments_submissions()
30
+ # self.new_grades_df = setup_grades_df(self.assignments)
31
+ # self.new_weekly_grades = fill_grades_df(
32
+ # self.new_grades_df, self.assignments, self.student_subs
33
+ # )
34
+ # self.current_week = get_current_week(self.start_date)
35
+ # self.avg_grades_dict = get_average_weighted_grade(
36
+ # self.assignments, self.current_week, self.new_weekly_grades, self.weights
37
+ # )
38
+
39
+ # @property
40
+ # def weights(self):
41
+ # return self.weights
42
+
43
+
44
+ # def get_my_grades_testing(start_date="2025-01-06", verbose=True):
45
+ # """takes in json.
46
+ # reshapes columns into reading, lecture, practicequiz, quiz, lab, attendance, homework, exam, final.
47
+ # fills in 0 for missing assignments
48
+ # calculate running average of each category"""
49
+
50
+ # # set up new df format
51
+ # weights = {
52
+ # "homework": 0.15,
53
+ # "lab": 0.15,
54
+ # "lecture": 0.15,
55
+ # "quiz": 0.15,
56
+ # "readings": 0.15,
57
+ # # 'midterm':0.15, 'final':0.2
58
+ # "labattendance": 0.05,
59
+ # "practicequiz": 0.05,
60
+ # }
61
+
62
+ # assignments, student_subs = get_assignments_submissions()
63
+
64
+ # new_grades_df = setup_grades_df(assignments)
65
+
66
+ # new_weekly_grades = fill_grades_df(new_grades_df, assignments, student_subs)
67
+
68
+ # current_week = get_current_week(start_date)
69
+
70
+ # avg_grades_dict = get_average_weighted_grade(
71
+ # assignments, current_week, new_weekly_grades, weights
72
+ # )
73
+
74
+ # if verbose:
75
+ # max_key_length = max(len(k) for k in weights.keys())
76
+ # for k, v in avg_grades_dict.items():
77
+ # print(f"{k:<{max_key_length}}:\t {v:.2f}")
78
+
79
+ # return new_weekly_grades # get rid of test and running avg columns
@@ -43,8 +43,9 @@ def call_score_assignment(
43
43
  "notebook_title": notebook_title,
44
44
  }
45
45
 
46
- if os.environ["TOKEN"] is not None:
47
- params["key_used"] = os.environ["TOKEN"]
46
+ token = os.getenv("TOKEN")
47
+ if token:
48
+ params["key_used"] = token
48
49
 
49
50
  username, password = get_credentials().values()
50
51
 
@@ -454,6 +454,7 @@ def get_my_grades_testing(start_date="2025-01-06", verbose=True):
454
454
  print(f'{k:<{max_key_length}}:\t {v:.2f}')
455
455
 
456
456
  return new_weekly_grades # get rid of test and running avg columns
457
+
457
458
  def get_all_students(admin_user, admin_pw):
458
459
  res = requests.get(
459
460
  url=api_base_url.rstrip("/") + "/students",
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes