diff options
author | jwansek <eddie.atten.ea29@gmail.com> | 2022-04-22 16:02:28 +0100 |
---|---|---|
committer | jwansek <eddie.atten.ea29@gmail.com> | 2022-04-22 16:02:28 +0100 |
commit | 12ac9bd354c664978523547ffac9bbebf0fcb577 (patch) | |
tree | eb9c3726edfa291d0b6c53cec0f25572946fb887 /mark.py | |
parent | 5faf5c34d833f8467bce580e1e249f54856042dc (diff) | |
download | Smarker-12ac9bd354c664978523547ffac9bbebf0fcb577.tar.gz Smarker-12ac9bd354c664978523547ffac9bbebf0fcb577.zip |
Moved and adapted to move folder, added rendering to pdfs
Diffstat (limited to 'mark.py')
-rw-r--r-- | mark.py | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/mark.py b/mark.py deleted file mode 100644 index 720553b..0000000 --- a/mark.py +++ /dev/null @@ -1,93 +0,0 @@ -from dataclasses import dataclass -import jinja_helpers -import configparser -import misc_classes -import argparse -import tempfile -import zipfile -import reflect -import jinja2 -import shutil -import yaml -import json -import os - -def main(**kwargs): - student_no = os.path.splitext(os.path.split(args["submission"])[-1])[0] - - with misc_classes.ExtractZipToTempDir(args["submission"]) as submission_files: - with open(kwargs["assessment"], "r") as f: - assessment_struct = yaml.safe_load(f) - - with misc_classes.FileDependencies(assessment_struct): - output = reflect.gen_reflection_report(submission_files, assessment_struct, student_no, kwargs, args["submission"]) - output_file = kwargs["out"] - - if kwargs["format"] == "yaml": - strout = yaml.dump(output) - elif kwargs["format"] == "json": - strout = json.dumps(output, indent = 4) - else: - fp = os.path.join("templates", "%s.jinja2" % kwargs["format"]) - if kwargs["format"] == "tex": - jinja_template = misc_classes.latex_jinja_env.get_template("tex.jinja2") - else: - with open(fp, "r") as f: - jinja_template = jinja2.Template(f.read()) - - strout = jinja_template.render(**output, **jinja_helpers._get_helpers(), **kwargs) - - if output_file == "stdout": - print(strout) - # input("\n\n[tempdir: %s] Press any key to close..." % tempdir) - exit() - - if output_file == "auto": - output_file = "%s_report.%s" % (student_no, kwargs["format"]) - - with open(output_file, "w") as f: - f.write(strout) - - # input("\n\n[tempdir: %s] Press any key to close..." % tempdir) - -if __name__ == "__main__": - config = configparser.ConfigParser() - config.read("smarker.conf") - - parser = argparse.ArgumentParser() - parser.add_argument( - "-a", "--assessment", - help = "Path to an assessment .yml file", - type = os.path.abspath, - required = True - ) - parser.add_argument( - "-s", "--submission", - help = "Path to a zip of a student's code", - type = os.path.abspath, - required = True - ) - parser.add_argument( - "-f", "--format", - help = "Output format type", - type = str, - choices = ["yaml", "json"] + [os.path.splitext(f)[0] for f in os.listdir("templates")], - default = "txt" - ) - parser.add_argument( - "-o", "--out", - help = "Path to write the output to, or, by default write to stdout. 'auto' automatically generates a file name.", - default = "stdout", - ) - - for section in config.sections(): - for option in config.options(section): - parser.add_argument( - "--%s_%s" % (section, option), - default = config.get(section, option), - help = "Optional argument inherited from config file. Read smarker.conf for details." - ) - - args = vars(parser.parse_args()) - main(**args) -
\ No newline at end of file |