From 5f0cf05ea2c51749713d10331847fbe062613bab Mon Sep 17 00:00:00 2001 From: Tue Herlau <tuhe@dtu.dk> Date: Fri, 19 Jul 2024 14:49:57 +0200 Subject: [PATCH] updates --- setup.py | 6 +----- .../material/homepage_lectures_exercises.py | 10 +++++----- src/coursebox/material/lecture_questions.py | 12 ++++++++---- src/coursebox/student_files/student_files.py | 15 ++++----------- 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/setup.py b/setup.py index 453ae6d..18baff2 100644 --- a/setup.py +++ b/setup.py @@ -13,11 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setuptools.setup( name="coursebox", -<<<<<<< HEAD - version="0.1.20.2", -======= - version="0.1.20.3", ->>>>>>> 47e544f39ea04a5f82e9d153ffd8bd57a6f553e9 + version="0.1.20.5", author="Tue Herlau", author_email="tuhe@dtu.dk", description="A course management system currently used at DTU", diff --git a/src/coursebox/material/homepage_lectures_exercises.py b/src/coursebox/material/homepage_lectures_exercises.py index 3c6d8a3..e838cdd 100644 --- a/src/coursebox/material/homepage_lectures_exercises.py +++ b/src/coursebox/material/homepage_lectures_exercises.py @@ -83,7 +83,7 @@ def get_feedback_groups(): # This is really getting deprecated... PRESENTATION = 0 NOTES = 1 HANDOUT = 2 -def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, make_quizzes=True, dosvg=False, async_pool=-1): +def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, make_quizzes=True, dosvg=False, async_pool=-1, compress_pdf=False): """ Mode determines what is compiled into the pdfs. It can be: @@ -115,7 +115,7 @@ def make_lectures(week=None, mode=0, gather_pdf_out=True, gather_sixup=True, mak if async_pool <= 1: all_pdfs = [] for lecture in lectures_to_compile: #info['lectures']: - pdf_out = _compile_single_lecture(dosvg=dosvg, lecture=lecture, make_quizzes=make_quizzes, mode=mode) + pdf_out = _compile_single_lecture(dosvg=dosvg, lecture=lecture, make_quizzes=make_quizzes, mode=mode, compress_pdf=compress_pdf) all_pdfs.append( (lecture['number'], pdf_out)) else: # Do the async here. @@ -205,11 +205,11 @@ def _setup_lecture_info(lecture, mode, dosvg, make_quizzes): return lecture_texfile pass -def _compile_single_lecture(dosvg, lecture, make_quizzes, mode): +def _compile_single_lecture(dosvg, lecture, make_quizzes, mode, compress_pdf=False): lecture_texfile = _setup_lecture_info(lecture, mode, dosvg, make_quizzes) # Fix questions for this lecture try: - pdf_out = slider.latexmk(lecture_texfile) + pdf_out = slider.latexmk(lecture_texfile, compress_pdf=compress_pdf) except Exception as e: log = lecture_texfile[:-4] + ".log" print("loading log", log) @@ -374,7 +374,7 @@ def fix_shared(paths, output_dir, pdf2png=False,dosvg=True,verbose=False, compil ''' cache_base = output_dir from jinjafy.cache import cache_contains_file, cache_update_file - from slider.convert import svg2pdf, pdfcrop + from slider.convert import svg2pdf from slider import convert # import filecmp diff --git a/src/coursebox/material/lecture_questions.py b/src/coursebox/material/lecture_questions.py index a341461..07041fe 100644 --- a/src/coursebox/material/lecture_questions.py +++ b/src/coursebox/material/lecture_questions.py @@ -7,7 +7,8 @@ from slider import latexmk from coursebox.thtools_base import execute_command from slider.slide import slide_no_by_text, recursive_tex_apply from slider.legacy_importer import slide_to_image - +from slider.convert import pdfcrop +from slider.convert import pdf2png def lecture_question_compiler(paths, info, lecture_texfile): @@ -40,8 +41,9 @@ def lecture_question_compiler(paths, info, lecture_texfile): data = {'text': qes} jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_q) fout_q_pdf = qpath + "/" + latexmk(fout_q, cleanup=True) - execute_command(["pdfcrop", fout_q_pdf, fout_q_pdf]) + # execute_command(["pdfcrop", fout_q_pdf, fout_q_pdf]) + pdfcrop(fout_q_pdf, fout_q_pdf) # get "nice" .png file (or fallback) tex = recursive_tex_apply(lecture_texfile) tex = "\n".join([tex[k] for k in tex]) @@ -69,7 +71,7 @@ def lecture_question_compiler(paths, info, lecture_texfile): if dex < 0: # import subprocess # out = subprocess.run(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"], capture_output=True, encoding='utf-8') - from slider.convert import pdf2png + fout = pdf2png(fout_q_pdf) # execute_command(["pdftocairo", fout_q_pdf, fout_q_pdf[:-4], "-png"]) @@ -102,7 +104,9 @@ def lecture_question_compiler(paths, info, lecture_texfile): data = {'text': sol} jinjafy_template(data=data, file_in=lecture_latex_path +"/questions/question_partial.tex", file_out=fout_sol) fout_sol_pdf = qpath + "/" + latexmk(fout_sol) - execute_command(["pdfcrop", fout_sol_pdf, fout_sol_pdf]) + # execute_command(["pdfcrop", fout_sol_pdf, fout_sol_pdf]) + pdfcrop(fout_sol_pdf, fout_sol_pdf) + # Now make the cvx fileÆ try: diff --git a/src/coursebox/student_files/student_files.py b/src/coursebox/student_files/student_files.py index d9fca2e..48fe9e7 100644 --- a/src/coursebox/student_files/student_files.py +++ b/src/coursebox/student_files/student_files.py @@ -33,21 +33,14 @@ def setup_student_files(run_files=True, from coursebox.core.info import class_information # info = class_information() from coursebox.core.info import core_conf -<<<<<<< HEAD try: - PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0] + if len(core_conf['projects_all']) > 0: + PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0] + else: + PACKAGE = list(core_conf['weeks_all'].values()).pop()['module_public'].split(".")[0] except Exception as e: PACKAGE = core_conf['package'] - -======= - # if 'package' not in core_conf: - if len(core_conf['projects_all']) > 0: - PACKAGE = list(core_conf['projects_all'].values()).pop()['module_public'].split(".")[0] - else: - PACKAGE = list(core_conf['weeks_all'].values()).pop()['module_public'].split(".")[0] ->>>>>>> 47e544f39ea04a5f82e9d153ffd8bd57a6f553e9 - if censor_files: assert not run_files, "You cannot run files while you are censoring them -- your scripts will crash. Call with run_files=False." -- GitLab