diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | config.py.example | 21 | ||||
-rw-r--r-- | leningrade.py | 45 |
3 files changed, 67 insertions, 0 deletions
@@ -9,3 +9,4 @@ pgroups.json scores.json settings.py *.csv +config.py diff --git a/config.py.example b/config.py.example new file mode 100644 index 0000000..9b12328 --- /dev/null +++ b/config.py.example @@ -0,0 +1,21 @@ +"""GENERIC""" +HGROUP_NO = 1 +HGROUP_MEMBERS = [("521370910000", "Vladimir Lenin")] +HGROUP = {f"hgroup-{HGROUP_NO}": HGROUP_MEMBERS} +LANGUAGE = "matlab" +HOMEWORK_NO = 2 +EXERCISES = [1, 2, 3, 4, 5, 6] +# TODO: figure out how to reliably obtain these two +MANDATORY_FILES = [f"ex{n}.m" for n in EXERCISES] +OPTIONAL_FILES = [] + +"""GITEA""" +# trailing slash not allowed +GITEA_API_BASE = "https://focs.ji.sjtu.edu.cn/git/api/v1" +GITEA_ORG = "ENGR151-21" +GITEA_TOKEN = "" + +"""JOJ""" +JOJ_COURSE_ID = "vg151_fall_2021_manuel" +JOJ_SESSION_ID = "" +JOJ_HOMEWORK_ID = "615542bfb3c06a0006f45dd6" # h2 diff --git a/leningrade.py b/leningrade.py new file mode 100644 index 0000000..af72cd6 --- /dev/null +++ b/leningrade.py @@ -0,0 +1,45 @@ +from worker import GitWorker, GiteaWorker, JOJWorker +from config import * + + +class Arguments: + indv = True + dir = True + group = True + joj = True + tidy = True + score = True + hw = HOMEWORK_NO + rejudge = HGROUP_NO + + +args = Arguments() + +gitWorker = GitWorker(args, HGROUP, None, LANGUAGE, MANDATORY_FILES, OPTIONAL_FILES, GITEA_ORG) +giteaWorker = GiteaWorker(args, GITEA_API_BASE, GITEA_ORG, GITEA_TOKEN, HGROUP) +jojWorker = JOJWorker(args, JOJ_COURSE_ID, JOJ_SESSION_ID, HGROUP) + +JOJ_INFO = { + "homeworkID": JOJ_HOMEWORK_ID, + "lang": LANGUAGE, + "problemInfo": [ + # filename, problem ID, # of test cases + ("ex2.m", "61553cffb3c06a0006f45da3", 10), + ("ex4.m", "61553e5fb3c06a0006f45da9", 10), + ("ex5.m", "61553f8cb3c06a0006f45db2", 10), + ("ex6.m", "6155414cb3c06a0006f45dc7", 10), + ], +} + +# individual +indvScores = gitWorker.checkIndv() +print(indvScores) +# group +groupScores = gitWorker.checkGroup() +tmpScores = giteaWorker.checkReview() +for key in groupScores.keys(): + groupScores[key] = {**groupScores.get(key, {}), **tmpScores.get(key, {})} +print(groupScores) +# JOJ +jojScores = jojWorker.checkGroupJOJ(JOJ_INFO) +print(jojScores) |