From 06a9f950abc8f23d3e493f7ae1a241d0409c4d40 Mon Sep 17 00:00:00 2001 From: Tue Herlau <tuhe@dtu.dk> Date: Mon, 1 Apr 2024 16:04:55 +0200 Subject: [PATCH] Project layout updates --- setup.py | 2 +- src/coursebox.egg-info/PKG-INFO | 2 +- src/coursebox/core/info_paths.py | 10 +++++++--- src/coursebox/core/projects_plagiarism.py | 1 + src/coursebox/material/documentation.py | 12 ++++++++++++ src/coursebox/setup_coursebox.py | 2 ++ 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/setup.py b/setup.py index 60825aa..36c5650 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ with open("README.md", "r", encoding="utf-8") as fh: setuptools.setup( name="coursebox", - version="0.1.19.7", + version="0.1.19.11", author="Tue Herlau", author_email="tuhe@dtu.dk", description="A course management system currently used at DTU", diff --git a/src/coursebox.egg-info/PKG-INFO b/src/coursebox.egg-info/PKG-INFO index 00f24e8..a5537f7 100644 --- a/src/coursebox.egg-info/PKG-INFO +++ b/src/coursebox.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: coursebox -Version: 0.1.19.7 +Version: 0.1.19.11 Summary: A course management system currently used at DTU Home-page: https://lab.compute.dtu.dk/tuhe/coursebox Author: Tue Herlau diff --git a/src/coursebox/core/info_paths.py b/src/coursebox/core/info_paths.py index 23306c7..042733e 100644 --- a/src/coursebox/core/info_paths.py +++ b/src/coursebox/core/info_paths.py @@ -14,11 +14,15 @@ def get_paths(): # num = cd[:cd.find("public")] CDIR = core_conf['working_dir'] course_number = core_conf['course_number'] + layout = core_conf.get('directory_layout', {}) + if layout is None: + layout = {} + root_02450public = os.path.normpath(CDIR + "/../..") - root_02450private = os.path.normpath(root_02450public + "/../%sprivate"%num) - root_02450instructors = os.path.normpath(root_02450private + "/../%sinstructors"%num) - root_02450students = os.path.normpath(root_02450private + "/../%sstudents" % num) + root_02450private = os.path.normpath( layout.get('private', root_02450public + "/../%sprivate"%num )) + root_02450instructors = os.path.normpath( layout.get('instructors', root_02450private + "/../%sinstructors"%num)) + root_02450students = os.path.normpath( layout.get('students', root_02450private + "/../%sstudents" % num) ) root_02450public = root_02450public.replace("\\", "/") root_02450private = root_02450private.replace("\\", "/") diff --git a/src/coursebox/core/projects_plagiarism.py b/src/coursebox/core/projects_plagiarism.py index 7dd7daf..460c931 100644 --- a/src/coursebox/core/projects_plagiarism.py +++ b/src/coursebox/core/projects_plagiarism.py @@ -1,3 +1,4 @@ + from tinydb import TinyDB, Query import os import zipfile diff --git a/src/coursebox/material/documentation.py b/src/coursebox/material/documentation.py index 40c0fda..7b74dd0 100644 --- a/src/coursebox/material/documentation.py +++ b/src/coursebox/material/documentation.py @@ -126,6 +126,7 @@ def build_sphinx_documentation(cut_files=False, open_browser=True, build_and_cop WEEKS = list(core_conf['weeks_all'].keys()) + pdfs = [] for g in glob.glob(paths['pdf_out'] +"/handout/*.pdf"): dst = paths['02450public'] + "/src/docs/assets/"+os.path.basename(g)[:-4] + "-handout.pdf" @@ -148,6 +149,16 @@ def build_sphinx_documentation(cut_files=False, open_browser=True, build_and_cop shutil.copy(g, dst) pdfs.append(dst) + for g in glob.glob(paths['02450public'] + "/pensum/*.pdf"): + if "02450" in g or "sutton" in g: + continue + dst = paths['02450public'] + "/src/docs/assets/" + os.path.basename(g) + if not os.path.isdir(os.path.dirname(dst)): + os.makedirs(os.path.dirname(dst)) + shutil.copy(g, dst) + pdfs.append(dst) + + # Copy shared templates. if not os.path.isdir(paths['02450public'] + "/src/docs/source/templates_generated"): os.mkdir(paths['02450public'] + "/src/docs/source/templates_generated") @@ -218,6 +229,7 @@ def build_sphinx_documentation(cut_files=False, open_browser=True, build_and_cop my_env = os.environ.copy() my_env['PYTHONPATH'] = (paths['02450students'] + '_complete').replace("\\", "/") + print("Running", cmd) process = run(cmd, print_output=True, log_output=True, check=False, env=my_env) """r diff --git a/src/coursebox/setup_coursebox.py b/src/coursebox/setup_coursebox.py index 3b46bc8..07b8c39 100644 --- a/src/coursebox/setup_coursebox.py +++ b/src/coursebox/setup_coursebox.py @@ -15,6 +15,7 @@ def setup_coursebox(working_dir, course_number="02450", semester='spring', year= continuing_education_month = "March", post_process_info=None, setup_student_files=None, fix_all_shared_files=None, + directory_layout=None, # Base layout of the project directories. Contains keys like public, private, students, etc. **kwargs): funcs['setup_student_files'] = setup_student_files funcs['fix_all_shared_files'] = fix_all_shared_files @@ -29,6 +30,7 @@ def setup_coursebox(working_dir, course_number="02450", semester='spring', year= info_paths.core_conf['continuing_education_month'] = continuing_education_month info_paths.core_conf['slides_shownotes'] = slides_shownotes info_paths.core_conf['post_process_info'] = post_process_info + info_paths.core_conf['directory_layout'] = directory_layout for a, val in kwargs.items(): info_paths.core_conf[a] = val -- GitLab