summaryrefslogtreecommitdiffstats
path: root/mark.py
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2022-04-22 16:02:28 +0100
committerjwansek <eddie.atten.ea29@gmail.com>2022-04-22 16:02:28 +0100
commit12ac9bd354c664978523547ffac9bbebf0fcb577 (patch)
treeeb9c3726edfa291d0b6c53cec0f25572946fb887 /mark.py
parent5faf5c34d833f8467bce580e1e249f54856042dc (diff)
downloadSmarker-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.py93
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