diff options
author | Frederick Yin <fred.yin@sjtu.edu.cn> | 2021-10-10 18:37:26 +0800 |
---|---|---|
committer | Frederick Yin <fred.yin@sjtu.edu.cn> | 2021-10-10 18:37:26 +0800 |
commit | d8d9a0abc2678de51cab23d19a760469e09320f5 (patch) | |
tree | b3e6842754ffa7d8e818ce3c1f2c40618a9e2590 | |
parent | f901e1e49e13faf35db375bbc95f1d94cea464dc (diff) |
Take in CLI arguments
Four arguments. The required one is
-n / --homework-number
Plus three flags to bypass respective checks
-I / --no-individual
-G / --no-group
-J / --no-joj
-rw-r--r-- | leningrade.py | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/leningrade.py b/leningrade.py index 167b3cf..aec0383 100644 --- a/leningrade.py +++ b/leningrade.py @@ -1,16 +1,35 @@ +import argparse from worker import GitWorker, GiteaWorker, JOJWorker from config import * +parser = argparse.ArgumentParser("leningrade") +parser.add_argument( + "-n", + "--homework-number", + type=int, + required=True, + help="An integer. For h1, the value should be 1.", +) +parser.add_argument("-I", "--no-individual", action="store_true", default=False) +parser.add_argument("-G", "--no-group", action="store_true", default=False) +parser.add_argument( + "-J", + "--no-joj", + action="store_true", + default=False, + help="JOJ may consume a lot of time. Set this flag if your group work has proven to pass JOJ.", +) + +cli_args = parser.parse_args() + + class Arguments: - indv = True + hw = HOMEWORK_NO + rejudge = HGROUP_NO # I do not understand the naming dir = True - group = True - joj = True tidy = True score = True - hw = HOMEWORK_NO - rejudge = HGROUP_NO args = Arguments() @@ -32,14 +51,17 @@ JOJ_INFO = { } # individual -indvScores = gitWorker.checkIndv() -print(indvScores) +if not cli_args.no_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) +if not cli_args.no_group: + groupScores = gitWorker.checkGroup() + tmpScores = giteaWorker.checkReview() + for key in groupScores.keys(): + groupScores[key] = {**groupScores.get(key, {}), **tmpScores.get(key, {})} + print(groupScores) +# JOJ (This will consume a lot of time when the code is in MATLAB) +if not cli_args.no_joj: + jojScores = jojWorker.checkGroupJOJ(JOJ_INFO) + print(jojScores) |