assignment-codeval 0.0.26__tar.gz → 0.0.27__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 (33) hide show
  1. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/PKG-INFO +1 -1
  2. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/pyproject.toml +1 -1
  3. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/create_assignment.py +29 -1
  4. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/PKG-INFO +1 -1
  5. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/README.md +0 -0
  6. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/setup.cfg +0 -0
  7. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/__init__.py +0 -0
  8. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/ai_benchmark.py +0 -0
  9. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/canvas_utils.py +0 -0
  10. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/check_grading.py +0 -0
  11. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/cli.py +0 -0
  12. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/commons.py +0 -0
  13. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/convertMD2Html.py +0 -0
  14. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/evaluate.py +0 -0
  15. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/export_tests.py +0 -0
  16. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/file_utils.py +0 -0
  17. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/github_connect.py +0 -0
  18. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/install_assignment.py +0 -0
  19. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/recent_comments.py +0 -0
  20. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/submissions.py +0 -0
  21. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval/test_template.html +0 -0
  22. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/SOURCES.txt +0 -0
  23. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/dependency_links.txt +0 -0
  24. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/entry_points.txt +0 -0
  25. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/requires.txt +0 -0
  26. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/src/assignment_codeval.egg-info/top_level.txt +0 -0
  27. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_check_grading.py +0 -0
  28. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_codeval.py +0 -0
  29. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_create_assignment.py +0 -0
  30. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_evaluate_submissions.py +0 -0
  31. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_export_tests.py +0 -0
  32. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_function_detection.py +0 -0
  33. {assignment_codeval-0.0.26 → assignment_codeval-0.0.27}/tests/test_install_assignment.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assignment-codeval
3
- Version: 0.0.26
3
+ Version: 0.0.27
4
4
  Summary: CodEval for evaluating programming assignments
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "assignment-codeval"
7
- version = "0.0.26"
7
+ version = "0.0.27"
8
8
  description = "CodEval for evaluating programming assignments"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -25,6 +25,28 @@ def get_codeval_folder(course):
25
25
  exit(2)
26
26
 
27
27
 
28
+ def get_assignment_subfolder(course, codeval_folder, assignment_name):
29
+ """Get or create a subfolder under CodEval named after the assignment."""
30
+ subfolder_path = f"{codeval_folder.full_name}/{assignment_name}"
31
+ canvas_folders = course.get_folders()
32
+ for folder in canvas_folders:
33
+ if folder.full_name == subfolder_path:
34
+ return folder
35
+ # Create the subfolder if it doesn't exist
36
+ debug(f'Creating subfolder: {subfolder_path}')
37
+ return course.create_folder(assignment_name, parent_folder_id=codeval_folder.id)
38
+
39
+
40
+ def extract_assignment_name(specname):
41
+ """Extract the assignment name from the CRT_HW START line of a codeval spec file."""
42
+ with open(specname, 'r') as f:
43
+ for line in f:
44
+ if 'CRT_HW START' in line:
45
+ return line[13:].strip()
46
+ error(f"could not find CRT_HW START in {specname}")
47
+ exit(2)
48
+
49
+
28
50
  def extract_file_macros(specname):
29
51
  """Extract all FILE[filename] macros from the markdown portion of a codeval spec file."""
30
52
  file_macros = []
@@ -119,7 +141,13 @@ def create_assignment(dryrun, verbose, course_name, group_name, specname, extra)
119
141
  if has_github:
120
142
  debug(f'Found GITHUB entry for course, will use online_text_entry submission type')
121
143
 
122
- canvas_folder = get_codeval_folder(course)
144
+ codeval_folder = get_codeval_folder(course)
145
+ assign_name_early = extract_assignment_name(specname)
146
+ if get_config().dry_run:
147
+ canvas_folder = codeval_folder
148
+ debug(f'Would use subfolder: CodEval/{assign_name_early}')
149
+ else:
150
+ canvas_folder = get_assignment_subfolder(course, codeval_folder, assign_name_early)
123
151
  if extra:
124
152
  upload_assignment_files(canvas_folder, extra)
125
153
  # find zipfiles in spec
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: assignment-codeval
3
- Version: 0.0.26
3
+ Version: 0.0.27
4
4
  Summary: CodEval for evaluating programming assignments
5
5
  Requires-Python: >=3.12
6
6
  Description-Content-Type: text/markdown