From 12ac9bd354c664978523547ffac9bbebf0fcb577 Mon Sep 17 00:00:00 2001 From: jwansek Date: Fri, 22 Apr 2022 16:02:28 +0100 Subject: Moved and adapted to move folder, added rendering to pdfs --- misc_classes.py | 99 --------------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 misc_classes.py (limited to 'misc_classes.py') diff --git a/misc_classes.py b/misc_classes.py deleted file mode 100644 index 5bf16c1..0000000 --- a/misc_classes.py +++ /dev/null @@ -1,99 +0,0 @@ -from dataclasses import dataclass -import tempfile -import zipfile -import shutil -import jinja2 -import os - -latex_jinja_env = jinja2.Environment( - block_start_string = '((*', - block_end_string = '*))', - variable_start_string = '(((', - variable_end_string = ')))', - comment_start_string = "((#", - comment_end_string = '#))', - line_statement_prefix = '%%', - line_comment_prefix = '%#', - trim_blocks = True, - autoescape = False, - loader = jinja2.FileSystemLoader(os.path.abspath('templates')) -) - -@dataclass -class ExtractZipToTempDir(tempfile.TemporaryDirectory): - zip_file:str - - def __post_init__(self): - super().__init__() - - def __enter__(self): - return self.extract() - - def __exit__(self, exc, value, tb): - self.cleanup() - - def extract(self): - with zipfile.ZipFile(self.zip_file) as z: - z.extractall(self.name) - - # some zipping applications make a folder inside the zip with the files in that folder. - # try to deal with this here. - submission_files = self.name - if os.path.isdir( - os.path.join(submission_files, os.listdir(submission_files)[0]) - ) and len(os.listdir(submission_files)) == 1: - submission_files = os.path.join(submission_files, os.listdir(submission_files)[0]) - - return submission_files - -@dataclass -class FileDependencies: - assessment_struct:dict - to_:str=str(os.getcwd()) - - def __enter__(self): - self.get_deps() - - def __exit__(self, type, value, traceback): - self.rm_deps() - - def get_deps(self): - try: - for file_dep in self.assessment_struct["dependencies"]["files"]: - if os.path.isfile(file_dep): - shutil.copy(file_dep, os.path.join(self.to_, os.path.split(file_dep)[-1])) - else: - shutil.copytree(file_dep, os.path.join(self.to_, os.path.split(file_dep)[-1])) - except KeyError: - pass - - def rm_deps(self): - stuff_to_remove = [] - try: - stuff_to_remove += [os.path.split(f)[-1] for f in self.assessment_struct["dependencies"]["files"]] - except KeyError: - pass - try: - stuff_to_remove += self.assessment_struct["produced_files"] - except KeyError: - pass - - for file_dep in stuff_to_remove: - file_dep = os.path.join(self.to_, file_dep) - # print("rm: ", file_dep) - if os.path.exists(file_dep): - if os.path.isfile(file_dep): - os.remove(file_dep) - else: - shutil.rmtree(file_dep) - -@dataclass -class ChangeDirectory: - target:str - cwd:str=str(os.getcwd()) - - def __enter__(self): - os.chdir(self.target) - - def __exit__(self, type, value, traceback): - os.chdir(self.cwd) -- cgit v1.2.3