From b8c2f236a4219a468e6fe9a482d31b00162f004a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Thu, 16 Sep 2021 13:28:51 +0200 Subject: [PATCH] refactor files --- scripts/courses.py | 40 +++++++++++++++++++++++----------------- scripts/lectures.py | 22 ++++++++++------------ 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/scripts/courses.py b/scripts/courses.py index 9f46278..9541f65 100755 --- a/scripts/courses.py +++ b/scripts/courses.py @@ -3,8 +3,11 @@ from pathlib import Path import yaml from lectures import Lectures -from config import ROOT, CURRENT_COURSE_ROOT, CURRENT_COURSE_SYMLINK, CURRENT_COURSE_WATCH_FILE, COURSE_IGNORE_FILE, COURSE_INFO_FILE -class Course(): +from config import ROOT, CURRENT_COURSE_ROOT, CURRENT_COURSE_SYMLINK, CURRENT_COURSE_WATCH_FILE, COURSE_IGNORE_FILE, \ + COURSE_INFO_FILE + + +class Course: def __init__(self, path): self.path = path self.name = path.stem @@ -19,26 +22,29 @@ class Course(): return self._lectures def __eq__(self, other): - if other == None: + if other is None: return False return self.path == other.path + +def ignored_courses(): + with open(ROOT / COURSE_IGNORE_FILE) as ignore: + lines = ignore.readlines() + paths = [] + for line in lines: + paths.append(ROOT / line.strip()) + return paths + + +def read_files(): + course_directories = [x for x in ROOT.iterdir() if x.is_dir() and x not in ignored_courses()] + _courses = [Course(path) for path in course_directories] + return sorted(_courses, key=lambda c: c.name) + + class Courses(list): def __init__(self): - list.__init__(self, self.read_files()) - - def read_files(self): - course_directories = [x for x in ROOT.iterdir() if x.is_dir() and not x in self.ignored_courses()] - _courses = [Course(path) for path in course_directories] - return sorted(_courses, key=lambda c: c.name) - - def ignored_courses(self): - with open(ROOT / COURSE_IGNORE_FILE) as ignore: - lines = ignore.readlines() - paths = [] - for line in lines: - paths.append(ROOT / line.strip()) - return paths + list.__init__(self, read_files()) @property def current(self): diff --git a/scripts/lectures.py b/scripts/lectures.py index 4efeb0f..d0d441e 100755 --- a/scripts/lectures.py +++ b/scripts/lectures.py @@ -1,14 +1,11 @@ #!/usr/bin/python3 -import os -from datetime import datetime -from pathlib import Path import locale import re import subprocess +from datetime import datetime - -from config import get_week, DATE_FORMAT, CURRENT_COURSE_ROOT, LOCALE, DEFAULT_MASTER_FILE_NAME +from config import get_week, DATE_FORMAT, LOCALE, DEFAULT_MASTER_FILE_NAME # TODO locale.setlocale(locale.LC_TIME, LOCALE) @@ -17,16 +14,18 @@ locale.setlocale(locale.LC_TIME, LOCALE) def number2filename(n): return 'lec_{0:02d}.tex'.format(n) + def filename2number(s): return int(str(s).replace('.tex', '').replace('lec_', '')) -class Lecture(): + +class Lecture: def __init__(self, file_path, course): with file_path.open() as f: for line in f: - lecture_match = re.search(r'lecture\{(.*?)\}\{(.*?)\}\{(.*)\}', line) + lecture_match = re.search(r'lecture{(.*?)}{(.*?)}{(.*)}', line) if lecture_match: - break; + break # number = int(lecture_match.group(1)) @@ -108,7 +107,7 @@ class Lectures(list): if 'start lectures' in line: part = 1 - return (header, footer) + return header, footer def update_lectures_in_master(self, r): header, footer = self.get_header_footer(self.master_file) @@ -137,10 +136,9 @@ class Lectures(list): self.read_files() + lec = Lecture(new_lecture_path, self.course) - l = Lecture(new_lecture_path, self.course) - - return l + return lec def compile_master(self): result = subprocess.run(