ygrader 1.1.21__tar.gz → 1.1.23__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.
- {ygrader-1.1.21/ygrader.egg-info → ygrader-1.1.23}/PKG-INFO +1 -1
- {ygrader-1.1.21 → ygrader-1.1.23}/setup.py +1 -1
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/grades_csv.py +6 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/student_repos.py +30 -26
- {ygrader-1.1.21 → ygrader-1.1.23/ygrader.egg-info}/PKG-INFO +1 -1
- {ygrader-1.1.21 → ygrader-1.1.23}/LICENSE +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/setup.cfg +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/test/test_interactive.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/test/test_unittest.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/__init__.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/grader.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/grading_item.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/upstream_merger.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader/utils.py +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader.egg-info/SOURCES.txt +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader.egg-info/dependency_links.txt +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader.egg-info/requires.txt +0 -0
- {ygrader-1.1.21 → ygrader-1.1.23}/ygrader.egg-info/top_level.txt +0 -0
|
@@ -3,7 +3,7 @@ from setuptools import setup
|
|
|
3
3
|
setup(
|
|
4
4
|
name="ygrader",
|
|
5
5
|
packages=["ygrader"],
|
|
6
|
-
version="1.1.
|
|
6
|
+
version="1.1.23",
|
|
7
7
|
description="Grading scripts used in BYU's Electrical and Computer Engineering Department",
|
|
8
8
|
author="Jeff Goeders",
|
|
9
9
|
author_email="jeff.goeders@gmail.com",
|
|
@@ -52,6 +52,12 @@ def match_to_github_url(df_needs_grade, github_csv_path, github_csv_col_name, us
|
|
|
52
52
|
# Strip whitespace from CSV header names
|
|
53
53
|
df_github.rename(columns=lambda x: x.strip(), inplace=True)
|
|
54
54
|
|
|
55
|
+
if "Net ID" not in df_github.columns:
|
|
56
|
+
error(f"Your github CSV ({github_csv_path}) is missing a 'Net ID' column.")
|
|
57
|
+
|
|
58
|
+
# Drop all but Net ID and github URL columns
|
|
59
|
+
df_github = df_github[["Net ID", github_csv_col_name]]
|
|
60
|
+
|
|
55
61
|
# Rename appropriate column to github url
|
|
56
62
|
df_github.rename(columns={github_csv_col_name: "github_url"}, inplace=True)
|
|
57
63
|
|
|
@@ -18,34 +18,38 @@ def clone_repo(git_path, tag, student_repo_path):
|
|
|
18
18
|
"already cloned. Re-fetching tag",
|
|
19
19
|
)
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
tag
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
21
|
+
if tag:
|
|
22
|
+
# Fetch
|
|
23
|
+
cmd = ["git", "fetch", "--tags", "-f"]
|
|
24
|
+
try:
|
|
25
|
+
subprocess.run(cmd, cwd=student_repo_path, check=True)
|
|
26
|
+
except subprocess.CalledProcessError:
|
|
27
|
+
print_color(TermColors.RED, "git fetch failed")
|
|
28
|
+
return False
|
|
29
|
+
|
|
30
|
+
# Checkout tag
|
|
31
|
+
if tag not in ("master", "main"):
|
|
32
|
+
tag = "tags/" + tag
|
|
33
|
+
cmd = ["git", "checkout", tag, "-f"]
|
|
34
|
+
try:
|
|
35
|
+
subprocess.run(cmd, cwd=student_repo_path, check=True)
|
|
36
|
+
except subprocess.CalledProcessError:
|
|
37
|
+
print_color(TermColors.RED, "git checkout of tag failed")
|
|
38
|
+
return False
|
|
39
|
+
return True
|
|
39
40
|
|
|
40
41
|
print_color(TermColors.BLUE, "Cloning repo, tag =", tag)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
if tag:
|
|
43
|
+
cmd = [
|
|
44
|
+
"git",
|
|
45
|
+
"clone",
|
|
46
|
+
"--branch",
|
|
47
|
+
tag,
|
|
48
|
+
git_path,
|
|
49
|
+
str(student_repo_path.absolute()),
|
|
50
|
+
]
|
|
51
|
+
else:
|
|
52
|
+
cmd = ["git", "clone", git_path, str(student_repo_path.absolute())]
|
|
49
53
|
try:
|
|
50
54
|
subprocess.run(cmd, check=True)
|
|
51
55
|
except KeyboardInterrupt:
|
|
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
|